@iit/precision-ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Adapters.d.ts +8 -0
- package/dist/Adapters.d.ts.map +1 -1
- package/dist/components/CarouselDotButton.d.ts +13 -0
- package/dist/components/CarouselDotButton.d.ts.map +1 -0
- package/dist/components/GridIterator.d.ts +13 -0
- package/dist/components/GridIterator.d.ts.map +1 -0
- package/dist/components/Informer.d.ts +6 -0
- package/dist/components/Informer.d.ts.map +1 -0
- package/dist/components/SafeHtml.d.ts +6 -0
- package/dist/components/SafeHtml.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumb.d.ts +9 -0
- package/dist/components/breadcrumbs/Breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +9 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +5 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/cards/Advantage.d.ts +10 -0
- package/dist/components/cards/Advantage.d.ts.map +1 -0
- package/dist/components/cards/Advantage2.d.ts +14 -0
- package/dist/components/cards/Advantage2.d.ts.map +1 -0
- package/dist/components/cards/FeaturedCard.d.ts +18 -0
- package/dist/components/cards/FeaturedCard.d.ts.map +1 -0
- package/dist/components/cards/Plate.d.ts +15 -0
- package/dist/components/cards/Plate.d.ts.map +1 -0
- package/dist/components/cards/Product.d.ts +28 -0
- package/dist/components/cards/Product.d.ts.map +1 -0
- package/dist/components/cards/Rate.d.ts +35 -0
- package/dist/components/cards/Rate.d.ts.map +1 -0
- package/dist/components/core/typography/Heading.d.ts +11 -0
- package/dist/components/core/typography/Heading.d.ts.map +1 -0
- package/dist/components/core/typography/Text.d.ts +11 -0
- package/dist/components/core/typography/Text.d.ts.map +1 -0
- package/dist/components/core/typography/typeVariants.d.ts +4 -0
- package/dist/components/core/typography/typeVariants.d.ts.map +1 -0
- package/dist/components/ui/Tag.d.ts +16 -0
- package/dist/components/ui/Tag.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +2 -1
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/button/index.d.ts +8 -0
- package/dist/components/ui/button/index.d.ts.map +1 -1
- package/dist/components/ui/carousel.d.ts +28 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts +14 -0
- package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts.map +1 -0
- package/dist/components/ui/checkbox/checkbox.d.ts +12 -0
- package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox/index.d.ts +5 -0
- package/dist/components/ui/checkbox/index.d.ts.map +1 -0
- package/dist/components/ui/input/Input.d.ts +11 -0
- package/dist/components/ui/input/Input.d.ts.map +1 -0
- package/dist/components/ui/input/InputWithLabel.d.ts +13 -0
- package/dist/components/ui/input/InputWithLabel.d.ts.map +1 -0
- package/dist/components/ui/input/SearchInput.d.ts +12 -0
- package/dist/components/ui/input/SearchInput.d.ts.map +1 -0
- package/dist/components/ui/input/SearchInputWithButton.d.ts +17 -0
- package/dist/components/ui/input/SearchInputWithButton.d.ts.map +1 -0
- package/dist/components/ui/input/index.d.ts +5 -0
- package/dist/components/ui/input/index.d.ts.map +1 -0
- package/dist/components/ui/input/types.d.ts +2 -0
- package/dist/components/ui/input/types.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +8 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/decorators/CarouselWrapper.d.ts +10 -0
- package/dist/decorators/CarouselWrapper.d.ts.map +1 -0
- package/dist/decorators/ImageWrapper.d.ts +11 -0
- package/dist/decorators/ImageWrapper.d.ts.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +40 -12
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +5 -5
- package/dist/index.es10.js.map +1 -1
- package/dist/index.es11.js +32 -6
- package/dist/index.es11.js.map +1 -1
- package/dist/index.es12.js +25 -22
- package/dist/index.es12.js.map +1 -1
- package/dist/index.es13.js +28 -0
- package/dist/index.es13.js.map +1 -0
- package/dist/index.es14.js +76 -0
- package/dist/index.es14.js.map +1 -0
- package/dist/index.es15.js +38 -0
- package/dist/index.es15.js.map +1 -0
- package/dist/index.es16.js +36 -0
- package/dist/index.es16.js.map +1 -0
- package/dist/index.es17.js +33 -0
- package/dist/index.es17.js.map +1 -0
- package/dist/index.es18.js +31 -0
- package/dist/index.es18.js.map +1 -0
- package/dist/index.es19.js +186 -0
- package/dist/index.es19.js.map +1 -0
- package/dist/index.es2.js +1 -1
- package/dist/index.es20.js +55 -0
- package/dist/index.es20.js.map +1 -0
- package/dist/index.es21.js +60 -0
- package/dist/index.es21.js.map +1 -0
- package/dist/index.es22.js +62 -0
- package/dist/index.es22.js.map +1 -0
- package/dist/index.es23.js +22 -0
- package/dist/index.es23.js.map +1 -0
- package/dist/index.es24.js +22 -0
- package/dist/index.es24.js.map +1 -0
- package/dist/index.es25.js +9 -0
- package/dist/index.es25.js.map +1 -0
- package/dist/index.es26.js +25 -0
- package/dist/index.es26.js.map +1 -0
- package/dist/index.es27.js +30 -0
- package/dist/index.es27.js.map +1 -0
- package/dist/index.es28.js +5 -0
- package/dist/index.es28.js.map +1 -0
- package/dist/index.es29.js +23 -0
- package/dist/index.es29.js.map +1 -0
- package/dist/index.es3.js +2 -2
- package/dist/index.es30.js +23 -0
- package/dist/index.es30.js.map +1 -0
- package/dist/index.es31.js +14 -0
- package/dist/index.es31.js.map +1 -0
- package/dist/index.es32.js +88 -0
- package/dist/index.es32.js.map +1 -0
- package/dist/index.es33.js +22 -0
- package/dist/index.es33.js.map +1 -0
- package/dist/index.es34.js +49 -0
- package/dist/index.es34.js.map +1 -0
- package/dist/index.es35.js +48 -0
- package/dist/index.es35.js.map +1 -0
- package/dist/index.es36.js +40 -0
- package/dist/index.es36.js.map +1 -0
- package/dist/index.es37.js +59 -0
- package/dist/index.es37.js.map +1 -0
- package/dist/index.es38.js +95 -0
- package/dist/index.es38.js.map +1 -0
- package/dist/index.es39.js +101 -0
- package/dist/index.es39.js.map +1 -0
- package/dist/index.es4.js +1 -1
- package/dist/index.es40.js +30 -0
- package/dist/index.es40.js.map +1 -0
- package/dist/index.es41.js +19 -0
- package/dist/index.es41.js.map +1 -0
- package/dist/index.es42.js +7 -0
- package/dist/index.es42.js.map +1 -0
- package/dist/index.es5.js +1 -1
- package/dist/index.es6.js +1 -1
- package/dist/index.es7.js +1 -1
- package/dist/index.es8.js +1 -1
- package/dist/index.es9.js.map +1 -1
- package/dist/lib/utils/truncateText.d.ts +3 -0
- package/dist/lib/utils/truncateText.d.ts.map +1 -0
- package/dist/partners/alfa.svg +3 -0
- package/dist/partners/mts.svg +6 -0
- package/dist/partners/otkrytie.svg +8 -0
- package/dist/partners/pochtabank.svg +11 -0
- package/dist/partners/rosbank.svg +10 -0
- package/dist/partners/rostelekom.svg +7 -0
- package/dist/partners/sberbank.svg +33 -0
- package/dist/partners/uralsib.svg +12 -0
- package/dist/partners/vtb.svg +16 -0
- package/dist/sections/CTA.d.ts +12 -0
- package/dist/sections/CTA.d.ts.map +1 -0
- package/dist/sections/CardsGridSection.d.ts +21 -0
- package/dist/sections/CardsGridSection.d.ts.map +1 -0
- package/dist/sections/Hero.d.ts +21 -0
- package/dist/sections/Hero.d.ts.map +1 -0
- package/dist/sections/Partners.d.ts +13 -0
- package/dist/sections/Partners.d.ts.map +1 -0
- package/dist/sections/Section.d.ts +22 -0
- package/dist/sections/Section.d.ts.map +1 -0
- package/dist/sections/common.d.ts +14 -0
- package/dist/sections/common.d.ts.map +1 -0
- package/dist/slides/crossed-circles.svg +59 -0
- package/dist/styles.css +2250 -730
- package/dist/utils/unique.d.ts +2 -0
- package/dist/utils/unique.d.ts.map +1 -0
- package/package.json +110 -101
package/dist/index.es3.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import e, { Fragment as c } from "react";
|
|
2
2
|
import { Button as h } from "./index.es2.js";
|
|
3
3
|
import { cva as l } from "class-variance-authority";
|
|
4
|
-
import { cn as u } from "./index.
|
|
5
|
-
import { iconDefiner as d } from "./index.
|
|
4
|
+
import { cn as u } from "./index.es25.js";
|
|
5
|
+
import { iconDefiner as d } from "./index.es26.js";
|
|
6
6
|
const m = l(
|
|
7
7
|
"rounded-lg p-[10px] transition-all hover:rounded-[24px]",
|
|
8
8
|
{
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as t from "react";
|
|
2
|
+
import * as o from "@radix-ui/react-tooltip";
|
|
3
|
+
import { cn as r } from "./index.es25.js";
|
|
4
|
+
const n = o.Provider, l = o.Root, p = o.Trigger, s = t.forwardRef(({ className: e, sideOffset: i = 4, ...a }, d) => /* @__PURE__ */ t.createElement(
|
|
5
|
+
o.Content,
|
|
6
|
+
{
|
|
7
|
+
ref: d,
|
|
8
|
+
sideOffset: i,
|
|
9
|
+
className: r(
|
|
10
|
+
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
11
|
+
e
|
|
12
|
+
),
|
|
13
|
+
...a
|
|
14
|
+
}
|
|
15
|
+
));
|
|
16
|
+
s.displayName = o.Content.displayName;
|
|
17
|
+
export {
|
|
18
|
+
l as Tooltip,
|
|
19
|
+
s as TooltipContent,
|
|
20
|
+
n as TooltipProvider,
|
|
21
|
+
p as TooltipTrigger
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.es30.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es30.js","sources":["../src/components/ui/tooltip.tsx"],"sourcesContent":["import * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '@/lib/utils/cn'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"names":["TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","React","className","sideOffset","props","ref","cn"],"mappings":";;;AAKA,MAAMA,IAAkBC,EAAiB,UAEnCC,IAAUD,EAAiB,MAE3BE,IAAiBF,EAAiB,SAElCG,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,GAAGC,EAAM,GAAGC,MAC1C,gBAAAJ,EAAA;AAAA,EAACJ,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAQ;AAAA,IACA,YAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAe,cAAcH,EAAiB,QAAQ;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import m from "./index.es41.js";
|
|
2
|
+
import e from "react";
|
|
3
|
+
const s = ({ list: t }) => /* @__PURE__ */ e.createElement("ul", { className: "breadcrumbs space-y-2" }, t.map((a, r) => /* @__PURE__ */ e.createElement(
|
|
4
|
+
"li",
|
|
5
|
+
{
|
|
6
|
+
key: r,
|
|
7
|
+
style: { "--counter": r + 1 }
|
|
8
|
+
},
|
|
9
|
+
/* @__PURE__ */ e.createElement(m, { ...a })
|
|
10
|
+
)));
|
|
11
|
+
export {
|
|
12
|
+
s as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.es31.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es31.js","sources":["../src/components/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import Breadcrumb, { BreadcrumbProps } from \"./Breadcrumb\";\r\n\r\nimport React from \"react\";\r\n\r\ninterface BreadcrumbsProps {\r\n list: BreadcrumbProps[];\r\n}\r\n\r\ninterface CustomInlineStyles extends React.CSSProperties {\r\n \"--counter\"?: number;\r\n}\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = ({ list }) => {\r\n return (\r\n <ul className=\"breadcrumbs space-y-2\">\r\n {list.map((item, index) => (\r\n <li\r\n key={index}\r\n style={{ \"--counter\": index + 1 } as CustomInlineStyles}\r\n >\r\n <Breadcrumb {...item} />\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["Breadcrumbs","list","React","item","index","Breadcrumb"],"mappings":";;AAYA,MAAMA,IAA0C,CAAC,EAAE,MAAAC,QAE/CC,gBAAAA,EAAA,cAAC,QAAG,WAAU,wBAAA,GACXD,EAAK,IAAI,CAACE,GAAMC,MACfF,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAKE;AAAA,IACL,OAAO,EAAE,aAAaA,IAAQ,EAAE;AAAA,EAAA;AAAA,EAEhCF,gBAAAA,EAAA,cAACG,GAAY,EAAA,GAAGF,EAAM,CAAA;AAEzB,CAAA,CACH;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import e, { useState as p, useRef as N, useEffect as I } from "react";
|
|
2
|
+
import { Button as m } from "./index.es2.js";
|
|
3
|
+
import { Close16X16 as k } from "@iit/precision-ui-icons";
|
|
4
|
+
import { Input as R } from "./index.es11.js";
|
|
5
|
+
import { SearchIcon as S } from "lucide-react";
|
|
6
|
+
import { cn as a } from "./index.es25.js";
|
|
7
|
+
const B = ({
|
|
8
|
+
id: f,
|
|
9
|
+
placeholder: h,
|
|
10
|
+
className: v,
|
|
11
|
+
containerClassName: b,
|
|
12
|
+
value: r = "",
|
|
13
|
+
onChange: t,
|
|
14
|
+
onKeyDown: d,
|
|
15
|
+
onClickSubmitButton: g,
|
|
16
|
+
onClickClearButton: n,
|
|
17
|
+
withoutBottomBorder: y,
|
|
18
|
+
...w
|
|
19
|
+
}) => {
|
|
20
|
+
const [o, s] = p(r), [i, u] = p(!1), l = N(null);
|
|
21
|
+
I(() => {
|
|
22
|
+
s(r);
|
|
23
|
+
}, [r]);
|
|
24
|
+
const x = (c) => {
|
|
25
|
+
s(c.target.value), t && t(c);
|
|
26
|
+
}, E = () => {
|
|
27
|
+
s(""), l.current && l.current.focus(), t && t({
|
|
28
|
+
target: { value: "" }
|
|
29
|
+
}), n && n();
|
|
30
|
+
};
|
|
31
|
+
return /* @__PURE__ */ e.createElement(
|
|
32
|
+
"div",
|
|
33
|
+
{
|
|
34
|
+
className: a("relative w-full max-w-2xl", b),
|
|
35
|
+
onMouseEnter: () => u(!0),
|
|
36
|
+
onMouseLeave: () => u(!1)
|
|
37
|
+
},
|
|
38
|
+
/* @__PURE__ */ e.createElement(
|
|
39
|
+
R,
|
|
40
|
+
{
|
|
41
|
+
ref: l,
|
|
42
|
+
id: f,
|
|
43
|
+
placeholder: h,
|
|
44
|
+
className: a(
|
|
45
|
+
"w-full pl-8 pr-20 hover:bg-navy-opacity-4-absolute rounded-full bg-whitish h-14",
|
|
46
|
+
v,
|
|
47
|
+
y && "border-b border-transparent"
|
|
48
|
+
),
|
|
49
|
+
value: o,
|
|
50
|
+
onChange: x,
|
|
51
|
+
onKeyDown: d,
|
|
52
|
+
...w
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
/* @__PURE__ */ e.createElement(
|
|
56
|
+
m,
|
|
57
|
+
{
|
|
58
|
+
type: "button",
|
|
59
|
+
variant: "ghost",
|
|
60
|
+
size: "icon",
|
|
61
|
+
className: a(
|
|
62
|
+
"absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground p-0 hover:bg-navy group",
|
|
63
|
+
i ? "bg-white" : "bg-navy-opacity-8"
|
|
64
|
+
),
|
|
65
|
+
onClick: E,
|
|
66
|
+
style: { display: o ? "block" : "none" }
|
|
67
|
+
},
|
|
68
|
+
/* @__PURE__ */ e.createElement(k, { className: "h-[10px] w-[10px] left-[5px] top-0 relative text-navy group-hover:text-whitish" }),
|
|
69
|
+
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Очистить")
|
|
70
|
+
),
|
|
71
|
+
/* @__PURE__ */ e.createElement(
|
|
72
|
+
m,
|
|
73
|
+
{
|
|
74
|
+
className: a(
|
|
75
|
+
"absolute right-2 top-1/2 -translate-y-1/2 text-navy h-10 w-10 hover:bg-navy group/submit disabled:pointer-events-auto active:transform active:scale-90",
|
|
76
|
+
i ? "bg-white" : "bg-navy-opacity-8"
|
|
77
|
+
),
|
|
78
|
+
disabled: !o,
|
|
79
|
+
onClick: g || void 0
|
|
80
|
+
},
|
|
81
|
+
/* @__PURE__ */ e.createElement(S, { className: "h-4 w-4 group-hover/submit:text-whitish" })
|
|
82
|
+
)
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
export {
|
|
86
|
+
B as default
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=index.es32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es32.js","sources":["../src/components/ui/input/SearchInputWithButton.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport { Button } from \"../button\";\r\nimport { Close16X16 } from \"@iit/precision-ui-icons\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { SearchIcon } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils/cn\";\r\n\r\ninterface SearchInputWithButtonProps {\r\n id?: string;\r\n placeholder?: string;\r\n className?: string;\r\n containerClassName?: string;\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onClickSubmitButton?: () => void;\r\n onClickClearButton?: () => void;\r\n withoutBottomBorder?: boolean;\r\n}\r\n\r\nconst SearchInputWithButton: React.FC<SearchInputWithButtonProps> = ({\r\n id,\r\n placeholder,\r\n className,\r\n containerClassName,\r\n value = \"\",\r\n onChange,\r\n onKeyDown,\r\n onClickSubmitButton,\r\n onClickClearButton,\r\n withoutBottomBorder,\r\n ...props\r\n}) => {\r\n const [inputValue, setInputValue] = useState(value);\r\n const [isHovered, setIsHovered] = useState(false); // Track hover state\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n setInputValue(value);\r\n }, [value]);\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setInputValue(event.target.value);\r\n if (onChange) {\r\n onChange(event);\r\n }\r\n };\r\n\r\n const handleClearClick = () => {\r\n setInputValue(\"\");\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n if (onChange) {\r\n onChange({\r\n target: { value: \"\" },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n if (onClickClearButton) {\r\n onClickClearButton();\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\"relative w-full max-w-2xl\", containerClassName)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n >\r\n <Input\r\n ref={inputRef}\r\n id={id}\r\n placeholder={placeholder}\r\n className={cn(\r\n \"w-full pl-8 pr-20 hover:bg-navy-opacity-4-absolute rounded-full bg-whitish h-14\",\r\n className,\r\n withoutBottomBorder && \"border-b border-transparent\"\r\n )}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onKeyDown={onKeyDown}\r\n {...props}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn(\r\n \"absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground p-0 hover:bg-navy group\",\r\n isHovered ? \"bg-white\" : \"bg-navy-opacity-8\"\r\n )}\r\n onClick={handleClearClick}\r\n style={{ display: inputValue ? \"block\" : \"none\" }}\r\n >\r\n <Close16X16 className=\"h-[10px] w-[10px] left-[5px] top-0 relative text-navy group-hover:text-whitish\" />\r\n <span className=\"sr-only\">Очистить</span>\r\n </Button>\r\n\r\n <Button\r\n className={cn(\r\n \"absolute right-2 top-1/2 -translate-y-1/2 text-navy h-10 w-10 hover:bg-navy group/submit disabled:pointer-events-auto active:transform active:scale-90\",\r\n isHovered ? \"bg-white\" : \"bg-navy-opacity-8\"\r\n )}\r\n disabled={!inputValue}\r\n onClick={onClickSubmitButton || undefined}\r\n >\r\n <SearchIcon className=\"h-4 w-4 group-hover/submit:text-whitish\" />\r\n </Button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SearchInputWithButton;\r\n"],"names":["SearchInputWithButton","id","placeholder","className","containerClassName","value","onChange","onKeyDown","onClickSubmitButton","onClickClearButton","withoutBottomBorder","props","inputValue","setInputValue","useState","isHovered","setIsHovered","inputRef","useRef","useEffect","handleInputChange","event","handleClearClick","React","cn","Input","Button","Close16X16","SearchIcon"],"mappings":";;;;;;AAqBA,MAAMA,IAA8D,CAAC;AAAA,EACnE,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAST,CAAK,GAC5C,CAACU,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAC1CG,IAAWC,EAAyB,IAAI;AAE9C,EAAAC,EAAU,MAAM;AACd,IAAAN,EAAcR,CAAK;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEJ,QAAAe,IAAoB,CAACC,MAA+C;AAC1D,IAAAR,EAAAQ,EAAM,OAAO,KAAK,GAC5Bf,KACFA,EAASe,CAAK;AAAA,EAChB,GAGIC,IAAmB,MAAM;AAC7B,IAAAT,EAAc,EAAE,GACZI,EAAS,WACXA,EAAS,QAAQ,SAEfX,KACOA,EAAA;AAAA,MACP,QAAQ,EAAE,OAAO,GAAG;AAAA,IAAA,CACkB,GAEtCG,KACiBA;EACrB;AAIA,SAAAc,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,6BAA6BpB,CAAkB;AAAA,MAC7D,cAAc,MAAMY,EAAa,EAAI;AAAA,MACrC,cAAc,MAAMA,EAAa,EAAK;AAAA,IAAA;AAAA,IAEtCO,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,KAAKR;AAAA,QACL,IAAAhB;AAAA,QACA,aAAAC;AAAA,QACA,WAAWsB;AAAA,UACT;AAAA,UACArB;AAAA,UACAO,KAAuB;AAAA,QACzB;AAAA,QACA,OAAOE;AAAA,QACP,UAAUQ;AAAA,QACV,WAAAb;AAAA,QACC,GAAGI;AAAA,MAAA;AAAA,IACN;AAAA,IACAY,gBAAAA,EAAA;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAWF;AAAA,UACT;AAAA,UACAT,IAAY,aAAa;AAAA,QAC3B;AAAA,QACA,SAASO;AAAA,QACT,OAAO,EAAE,SAASV,IAAa,UAAU,OAAO;AAAA,MAAA;AAAA,MAEhDW,gBAAAA,EAAA,cAACI,GAAW,EAAA,WAAU,iFAAiF,CAAA;AAAA,MACtGJ,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,UAAQ;AAAA,IACpC;AAAA,IAEAA,gBAAAA,EAAA;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,WAAWF;AAAA,UACT;AAAA,UACAT,IAAY,aAAa;AAAA,QAC3B;AAAA,QACA,UAAU,CAACH;AAAA,QACX,SAASJ,KAAuB;AAAA,MAAA;AAAA,MAEhCe,gBAAAA,EAAA,cAACK,GAAW,EAAA,WAAU,0CAA0C,CAAA;AAAA,IAClE;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import l from "./index.es23.js";
|
|
2
|
+
import e from "react";
|
|
3
|
+
import o from "./index.es14.js";
|
|
4
|
+
import n from "./index.es24.js";
|
|
5
|
+
import { getAdapter as i } from "./index.es9.js";
|
|
6
|
+
const g = ({ title: t, desc: a, icon: r }) => {
|
|
7
|
+
const m = i("ImageWrapper");
|
|
8
|
+
return /* @__PURE__ */ e.createElement("div", { className: "p-6 bg-whitish rounded-lg h-full" }, /* @__PURE__ */ e.createElement("div", { className: "p-4 bg-turquoise-opacity-20 rounded-lg mb-12 inline-flex" }, /* @__PURE__ */ e.createElement(
|
|
9
|
+
m,
|
|
10
|
+
{
|
|
11
|
+
src: r,
|
|
12
|
+
alt: `Изображение для ${t}`,
|
|
13
|
+
width: 32,
|
|
14
|
+
height: 32,
|
|
15
|
+
className: "object-contain"
|
|
16
|
+
}
|
|
17
|
+
)), /* @__PURE__ */ e.createElement(l, { level: 5, className: "mb-2" }, t), a && /* @__PURE__ */ e.createElement(n, { variant: "small-body", className: "text-navy-opacity-60", as: "div" }, /* @__PURE__ */ e.createElement(o, { html: a })));
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
g as default
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=index.es33.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es33.js","sources":["../src/components/cards/Advantage.tsx"],"sourcesContent":["import Heading from '@/components/core/typography/Heading'\r\nimport React from 'react'\r\nimport SafeHtmlRenderer from '../SafeHtml'\r\nimport Text from '@/components/core/typography/Text'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nexport interface AdvantageProps {\r\n title: string\r\n desc?: string\r\n icon: string\r\n}\r\n\r\nconst Advantage: React.FC<AdvantageProps> = ({ title, desc, icon }) => {\r\n const ImageWrapper = getAdapter('ImageWrapper')\r\n\r\n return (\r\n <div className=\"p-6 bg-whitish rounded-lg h-full\">\r\n <div className=\"p-4 bg-turquoise-opacity-20 rounded-lg mb-12 inline-flex\">\r\n <ImageWrapper\r\n src={icon}\r\n alt={`Изображение для ${title}`}\r\n width={32}\r\n height={32}\r\n className=\"object-contain\"\r\n />\r\n </div>\r\n <Heading level={5} className=\"mb-2\">\r\n {title}\r\n </Heading>\r\n {desc && (\r\n <Text variant=\"small-body\" className=\"text-navy-opacity-60\" as={'div'}>\r\n <SafeHtmlRenderer html={desc} />\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default Advantage\r\n"],"names":["Advantage","title","desc","icon","ImageWrapper","getAdapter","React","Heading","Text","SafeHtmlRenderer"],"mappings":";;;;;AAYA,MAAMA,IAAsC,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,MAAAC,QAAW;AAC/D,QAAAC,IAAeC,EAAW,cAAc;AAE9C,yCACG,OAAI,EAAA,WAAU,sCACZC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,2DACb,GAAAA,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,KAAKD;AAAA,MACL,KAAK,mBAAmBF,CAAK;AAAA,MAC7B,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAU;AAAA,IAAA;AAAA,EAEd,CAAA,GACAK,gBAAAA,EAAA,cAACC,GAAQ,EAAA,OAAO,GAAG,WAAU,OAAA,GAC1BN,CACH,GACCC,KACCI,gBAAAA,EAAA,cAACE,KAAK,SAAQ,cAAa,WAAU,wBAAuB,IAAI,MAAA,mCAC7DC,GAAiB,EAAA,MAAMP,EAAM,CAAA,CAChC,CAEJ;AAEJ;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import e, { Fragment as v } from "react";
|
|
2
|
+
import { Tag as u } from "./index.es17.js";
|
|
3
|
+
import E from "./index.es6.js";
|
|
4
|
+
import h from "./index.es23.js";
|
|
5
|
+
import g from "./index.es14.js";
|
|
6
|
+
import x from "./index.es24.js";
|
|
7
|
+
import { cn as N } from "./index.es25.js";
|
|
8
|
+
import { getAdapter as o } from "./index.es9.js";
|
|
9
|
+
const A = ({
|
|
10
|
+
title: t,
|
|
11
|
+
desc: a,
|
|
12
|
+
icon: r,
|
|
13
|
+
tags: c,
|
|
14
|
+
link: m,
|
|
15
|
+
size: i
|
|
16
|
+
}) => {
|
|
17
|
+
const l = `${i === 2 ? "sm:col-span-2" : "sm:col-span-1"} p-6 bg-whitish rounded-lg h-full`, p = o("LinkWrapper"), f = o("ImageWrapper"), n = /* @__PURE__ */ e.createElement(v, null, /* @__PURE__ */ e.createElement("div", { className: "flex space-x-2" }, c.map((s, d) => /* @__PURE__ */ e.createElement(u, { key: d, variant: s.color }, s.title))), r && /* @__PURE__ */ e.createElement("div", { className: "flex justify-center mt-12" }, /* @__PURE__ */ e.createElement(
|
|
18
|
+
f,
|
|
19
|
+
{
|
|
20
|
+
src: r,
|
|
21
|
+
alt: `Изображение для ${t}`,
|
|
22
|
+
width: 64,
|
|
23
|
+
height: 64
|
|
24
|
+
}
|
|
25
|
+
)), /* @__PURE__ */ e.createElement("div", { className: "space-y-2 mt-[88px]" }, /* @__PURE__ */ e.createElement(h, { level: 4, as: "div" }, t), a && /* @__PURE__ */ e.createElement(x, { variant: "small-body", className: "text-navy-opacity-60", as: "div" }, /* @__PURE__ */ e.createElement(g, { html: a, className: "inline" }))));
|
|
26
|
+
return m ? /* @__PURE__ */ e.createElement(
|
|
27
|
+
p,
|
|
28
|
+
{
|
|
29
|
+
href: m,
|
|
30
|
+
className: N(
|
|
31
|
+
l,
|
|
32
|
+
"flex flex-col h-full justify-between items-start transition-all bottom-0 hover:bottom-1 transform duration-300 relative"
|
|
33
|
+
)
|
|
34
|
+
},
|
|
35
|
+
/* @__PURE__ */ e.createElement("div", null, n),
|
|
36
|
+
/* @__PURE__ */ e.createElement(
|
|
37
|
+
E,
|
|
38
|
+
{
|
|
39
|
+
icon: "arrowRight",
|
|
40
|
+
className: "mt-6"
|
|
41
|
+
},
|
|
42
|
+
"Подробнее"
|
|
43
|
+
)
|
|
44
|
+
) : /* @__PURE__ */ e.createElement("div", { className: l }, n);
|
|
45
|
+
};
|
|
46
|
+
export {
|
|
47
|
+
A as default
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=index.es34.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es34.js","sources":["../src/components/cards/Advantage2.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\r\nimport { Tag, TagItemProps } from '../ui/Tag'\r\n\r\nimport { ButtonText } from '../ui/button'\r\nimport Heading from '../core/typography/Heading'\r\nimport SafeHtmlRenderer from '../SafeHtml'\r\nimport Text from '../core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nexport interface Advantage2Props {\r\n title: string\r\n desc?: string\r\n icon?: string\r\n tags: TagItemProps[]\r\n link?: string\r\n size?: 1 | 2\r\n}\r\n\r\nconst Advantage2: React.FC<Advantage2Props> = ({\r\n title,\r\n desc,\r\n icon,\r\n tags,\r\n link,\r\n size,\r\n}) => {\r\n const sizeCls = size === 2 ? 'sm:col-span-2' : 'sm:col-span-1'\r\n const classes = `${sizeCls} p-6 bg-whitish rounded-lg h-full`\r\n\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n const ImageWrapper = getAdapter('ImageWrapper')\r\n\r\n const component = (\r\n <Fragment>\r\n <div className=\"flex space-x-2\">\r\n {tags.map((tag, index) => (\r\n <Tag key={index} variant={tag.color}>\r\n {tag.title}\r\n </Tag>\r\n ))}\r\n </div>\r\n\r\n {icon && (\r\n <div className=\"flex justify-center mt-12\">\r\n <ImageWrapper\r\n src={icon}\r\n alt={`Изображение для ${title}`}\r\n width={64}\r\n height={64}\r\n // className=\"object-contain\"\r\n />\r\n </div>\r\n )}\r\n\r\n <div className=\"space-y-2 mt-[88px]\">\r\n <Heading level={4} as=\"div\">\r\n {title}\r\n </Heading>\r\n {desc && (\r\n <Text variant=\"small-body\" className=\"text-navy-opacity-60\" as=\"div\">\r\n <SafeHtmlRenderer html={desc} className=\"inline\" />\r\n </Text>\r\n )}\r\n </div>\r\n </Fragment>\r\n )\r\n\r\n if (link) {\r\n return (\r\n <LinkWrapper\r\n href={link}\r\n className={cn(\r\n classes,\r\n 'flex flex-col h-full justify-between items-start transition-all bottom-0 hover:bottom-1 transform duration-300 relative'\r\n )}\r\n >\r\n <div>{component}</div>\r\n {/* TODO: here is the button, should be a link */}\r\n <ButtonText\r\n icon=\"arrowRight\"\r\n className=\"mt-6\"\r\n // variant={variant === \"navy\" ? \"white\" : \"default\"}\r\n >\r\n Подробнее\r\n </ButtonText>\r\n </LinkWrapper>\r\n )\r\n }\r\n\r\n return <div className={classes}>{component}</div>\r\n}\r\n\r\nexport default Advantage2\r\n"],"names":["Advantage2","title","desc","icon","tags","link","size","classes","LinkWrapper","getAdapter","ImageWrapper","component","React","Fragment","tag","index","Tag","Heading","Text","SafeHtmlRenderer","cn","ButtonText"],"mappings":";;;;;;;;AAmBA,MAAMA,IAAwC,CAAC;AAAA,EAC7C,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AACF,MAAM;AAEE,QAAAC,IAAU,GADAD,MAAS,IAAI,kBAAkB,eACrB,qCAEpBE,IAAcC,EAAW,aAAa,GACtCC,IAAeD,EAAW,cAAc,GAExCE,IACJC,gBAAAA,EAAA,cAACC,GACC,MAAAD,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,iBACZ,GAAAR,EAAK,IAAI,CAACU,GAAKC,MACbH,gBAAAA,EAAA,cAAAI,GAAA,EAAI,KAAKD,GAAO,SAASD,EAAI,MAC3B,GAAAA,EAAI,KACP,CACD,CACH,GAECX,KACCS,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,4BACb,GAAAA,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,KAAKP;AAAA,MACL,KAAK,mBAAmBF,CAAK;AAAA,MAC7B,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAAA,EAAA,CAGZ,GAGDW,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,sBAAA,GACZA,gBAAAA,EAAA,cAAAK,GAAA,EAAQ,OAAO,GAAG,IAAG,MAAA,GACnBhB,CACH,GACCC,KACEU,gBAAAA,EAAA,cAAAM,GAAA,EAAK,SAAQ,cAAa,WAAU,wBAAuB,IAAG,SAC7DN,gBAAAA,EAAA,cAACO,GAAiB,EAAA,MAAMjB,GAAM,WAAU,SAAS,CAAA,CACnD,CAEJ,CACF;AAGF,SAAIG,IAEAO,gBAAAA,EAAA;AAAA,IAACJ;AAAA,IAAA;AAAA,MACC,MAAMH;AAAA,MACN,WAAWe;AAAA,QACTb;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,IAEAK,gBAAAA,EAAA,cAAC,aAAKD,CAAU;AAAA,IAEhBC,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,MAAA;AAAA,MAEX;AAAA,IAED;AAAA,EAAA,IAKET,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAWL,EAAA,GAAUI,CAAU;AAC7C;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Tag as b } from "./index.es17.js";
|
|
2
|
+
import h from "./index.es6.js";
|
|
3
|
+
import o from "./index.es23.js";
|
|
4
|
+
import e from "react";
|
|
5
|
+
import s from "./index.es24.js";
|
|
6
|
+
import { cn as x } from "./index.es25.js";
|
|
7
|
+
import { cva as y } from "class-variance-authority";
|
|
8
|
+
import { getAdapter as N } from "./index.es9.js";
|
|
9
|
+
const _ = ({
|
|
10
|
+
size: m,
|
|
11
|
+
tags: l,
|
|
12
|
+
link: n,
|
|
13
|
+
title: i,
|
|
14
|
+
desc: t,
|
|
15
|
+
className: c,
|
|
16
|
+
showDivider: p,
|
|
17
|
+
price: d,
|
|
18
|
+
oldPrice: a,
|
|
19
|
+
detailsText: v
|
|
20
|
+
}) => {
|
|
21
|
+
const f = y(
|
|
22
|
+
"p-6 pb-4 bg-whitish rounded-lg transition-all bottom-0 transform duration-300 hover:scale1-[1.015] border border-transparent hover:border-sapphire1 relative hover:bottom-1 cursor-pointer col-span-1 flex flex-col justify-between items-start sm:min-h-[264px] h-full",
|
|
23
|
+
{
|
|
24
|
+
variants: {
|
|
25
|
+
size: {
|
|
26
|
+
1: "sm:col-span-1",
|
|
27
|
+
2: "sm:col-span-2",
|
|
28
|
+
3: "sm:col-span-3"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: {
|
|
32
|
+
size: 1
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
), u = N("LinkWrapper");
|
|
36
|
+
return /* @__PURE__ */ e.createElement(u, { href: n, className: x(f({ size: m, className: c })) }, /* @__PURE__ */ e.createElement("div", { "data-test-id": "content-container" }, /* @__PURE__ */ e.createElement("div", { className: "flex space-x-2" }, l.map((r, E) => /* @__PURE__ */ e.createElement(b, { key: E, variant: r.color }, r.title))), /* @__PURE__ */ e.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ e.createElement(o, { level: 5, className: "mt-6", as: "div" }, i), t && /* @__PURE__ */ e.createElement(s, { variant: "small-body", className: "text-navy-opacity-60" }, t))), /* @__PURE__ */ e.createElement("div", { className: "mt-2 sm:mt-6 space-y-6 w-full" }, p && /* @__PURE__ */ e.createElement("div", { className: "border-t border-navy-opacity-16" }), /* @__PURE__ */ e.createElement("div", { className: "flex space-x-4 items-baseline" }, a && /* @__PURE__ */ e.createElement(
|
|
37
|
+
s,
|
|
38
|
+
{
|
|
39
|
+
variant: "caption",
|
|
40
|
+
className: "text-navy-opacity-40 line-through"
|
|
41
|
+
},
|
|
42
|
+
a
|
|
43
|
+
), /* @__PURE__ */ e.createElement(o, { level: 4, as: "div" }, d)), /* @__PURE__ */ e.createElement(h, { icon: "arrowRight" }, v || "Подробнее")));
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
_ as default
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.es35.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es35.js","sources":["../src/components/cards/FeaturedCard.tsx"],"sourcesContent":["import { Tag, TagItemProps } from '../ui/Tag'\r\n\r\nimport { ButtonText } from '../ui/button'\r\nimport Heading from '../core/typography/Heading'\r\nimport React from 'react'\r\nimport Text from '../core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { cva } from 'class-variance-authority'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nexport interface FeaturedCardProps {\r\n size: 1 | 2 | 3\r\n tags: TagItemProps[]\r\n link: string\r\n title: string\r\n desc?: string\r\n className?: string\r\n showDivider?: boolean\r\n price?: string\r\n oldPrice?: string\r\n detailsText?: string\r\n}\r\n\r\nconst FeaturedCard: React.FC<FeaturedCardProps> = ({\r\n size,\r\n tags,\r\n link,\r\n title,\r\n desc,\r\n className,\r\n showDivider,\r\n price,\r\n oldPrice,\r\n detailsText,\r\n}) => {\r\n const cardStyles = cva(\r\n 'p-6 pb-4 bg-whitish rounded-lg transition-all bottom-0 transform duration-300 hover:scale1-[1.015] border border-transparent hover:border-sapphire1 relative hover:bottom-1 cursor-pointer col-span-1 flex flex-col justify-between items-start sm:min-h-[264px] h-full',\r\n {\r\n variants: {\r\n size: {\r\n 1: 'sm:col-span-1',\r\n 2: 'sm:col-span-2',\r\n 3: 'sm:col-span-3',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 1,\r\n },\r\n }\r\n )\r\n\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n return (\r\n <LinkWrapper href={link} className={cn(cardStyles({ size, className }))}>\r\n <div data-test-id=\"content-container\">\r\n <div className=\"flex space-x-2\">\r\n {tags.map((tag, index) => (\r\n <Tag key={index} variant={tag.color}>\r\n {tag.title}\r\n </Tag>\r\n ))}\r\n </div>\r\n <div className=\"space-y-2\">\r\n <Heading level={5} className=\"mt-6\" as={'div'}>\r\n {title}\r\n </Heading>\r\n {desc && (\r\n <Text variant=\"small-body\" className=\"text-navy-opacity-60\">\r\n {desc}\r\n </Text>\r\n )}\r\n </div>\r\n </div>\r\n {/* TODO: here is the button, should be a link */}\r\n <div className=\"mt-2 sm:mt-6 space-y-6 w-full\">\r\n {showDivider && <div className=\"border-t border-navy-opacity-16\"></div>}\r\n <div className=\"flex space-x-4 items-baseline\">\r\n {oldPrice && (\r\n <Text\r\n variant=\"caption\"\r\n className=\"text-navy-opacity-40 line-through\"\r\n >\r\n {oldPrice}\r\n </Text>\r\n )}\r\n <Heading level={4} as={'div'}>\r\n {price}\r\n </Heading>\r\n </div>\r\n <ButtonText icon=\"arrowRight\">{detailsText || 'Подробнее'}</ButtonText>\r\n </div>\r\n </LinkWrapper>\r\n )\r\n}\r\n\r\nexport default FeaturedCard\r\n"],"names":["FeaturedCard","size","tags","link","title","desc","className","showDivider","price","oldPrice","detailsText","cardStyles","cva","LinkWrapper","getAdapter","cn","React","tag","index","Tag","Heading","Text","ButtonText"],"mappings":";;;;;;;;AAuBA,MAAMA,IAA4C,CAAC;AAAA,EACjD,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AACF,MAAM;AACJ,QAAMC,IAAaC;AAAA,IACjB;AAAA,IACA;AAAA,MACE,UAAU;AAAA,QACR,MAAM;AAAA,UACJ,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,QACL;AAAA,MACF;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EAAA,GAGIC,IAAcC,EAAW,aAAa;AAE5C,yCACGD,GAAY,EAAA,MAAMV,GAAM,WAAWY,EAAGJ,EAAW,EAAE,MAAAV,GAAM,WAAAK,EAAW,CAAA,CAAC,EAAA,GACnEU,gBAAAA,EAAA,cAAA,OAAA,EAAI,gBAAa,oBAChB,GAAAA,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,oBACZd,EAAK,IAAI,CAACe,GAAKC,MACbF,gBAAAA,EAAA,cAAAG,GAAA,EAAI,KAAKD,GAAO,SAASD,EAAI,MAAA,GAC3BA,EAAI,KACP,CACD,CACH,GACCD,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,eACbA,gBAAAA,EAAA,cAACI,GAAQ,EAAA,OAAO,GAAG,WAAU,QAAO,IAAI,MAAA,GACrChB,CACH,GACCC,KACEW,gBAAAA,EAAA,cAAAK,GAAA,EAAK,SAAQ,cAAa,WAAU,uBAClC,GAAAhB,CACH,CAEJ,CACF,GAECW,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,gCACZ,GAAAT,KAAgBS,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,mCAAkC,mCAChE,OAAI,EAAA,WAAU,mCACZP,KACCO,gBAAAA,EAAA;AAAA,IAACK;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,IAAA;AAAA,IAETZ;AAAA,EAAA,GAGJO,gBAAAA,EAAA,cAAAI,GAAA,EAAQ,OAAO,GAAG,IAAI,MACpB,GAAAZ,CACH,CACF,mCACCc,GAAW,EAAA,MAAK,gBAAcZ,KAAe,WAAY,CAC5D,CACF;AAEJ;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import r from "react";
|
|
2
|
+
import m from "./index.es24.js";
|
|
3
|
+
import { getAdapter as n } from "./index.es9.js";
|
|
4
|
+
const E = ({
|
|
5
|
+
items: t,
|
|
6
|
+
renderItem: s,
|
|
7
|
+
columns: l = 4,
|
|
8
|
+
showControlsOnDesktop: d = !1,
|
|
9
|
+
withoutCarousel: g = !0,
|
|
10
|
+
// TODO: add to props chain
|
|
11
|
+
footnote: c
|
|
12
|
+
}) => {
|
|
13
|
+
const i = (e) => {
|
|
14
|
+
switch (e) {
|
|
15
|
+
case 1:
|
|
16
|
+
return "grid grid-cols-1 gap-3";
|
|
17
|
+
case 2:
|
|
18
|
+
return "grid grid-cols-1 sm:grid-cols-2 gap-3";
|
|
19
|
+
case 3:
|
|
20
|
+
return "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3";
|
|
21
|
+
case 4:
|
|
22
|
+
return "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3";
|
|
23
|
+
default:
|
|
24
|
+
return "grid grid-cols-1 gap-3";
|
|
25
|
+
}
|
|
26
|
+
}, o = n("CarouselWrapper");
|
|
27
|
+
return /* @__PURE__ */ r.createElement("div", null, g ? /* @__PURE__ */ r.createElement("div", { className: i(l) }, t.map((e, a) => /* @__PURE__ */ r.createElement(r.Fragment, { key: a }, s(e, a)))) : /* @__PURE__ */ r.createElement(
|
|
28
|
+
o,
|
|
29
|
+
{
|
|
30
|
+
items: t,
|
|
31
|
+
renderItem: (e, a) => s(e, a),
|
|
32
|
+
columns: l,
|
|
33
|
+
showControlsOnDesktop: d
|
|
34
|
+
}
|
|
35
|
+
), c && /* @__PURE__ */ r.createElement("div", { className: "mt-6" }, /* @__PURE__ */ r.createElement(m, { variant: "small-body", as: "div" }, c)));
|
|
36
|
+
};
|
|
37
|
+
export {
|
|
38
|
+
E as default
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.es36.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es36.js","sources":["../src/components/GridIterator.tsx"],"sourcesContent":["import React from 'react'\r\nimport Text from './core/typography/Text'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\ninterface GridIteratorProps<T> {\r\n items: T[]\r\n renderItem: (item: T, index: number) => React.ReactNode\r\n columns?: number\r\n showControlsOnDesktop?: boolean\r\n withoutCarousel?: boolean\r\n footnote?: string\r\n}\r\n\r\nconst GridIterator = <T,>({\r\n items,\r\n renderItem,\r\n columns = 4,\r\n showControlsOnDesktop = false,\r\n withoutCarousel = true, // TODO: add to props chain\r\n footnote,\r\n}: GridIteratorProps<T>) => {\r\n const getGridClasses = (columns: number) => {\r\n switch (columns) {\r\n case 1:\r\n return 'grid grid-cols-1 gap-3'\r\n case 2:\r\n return 'grid grid-cols-1 sm:grid-cols-2 gap-3'\r\n case 3:\r\n return 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3'\r\n case 4:\r\n return 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3'\r\n default:\r\n return 'grid grid-cols-1 gap-3'\r\n }\r\n }\r\n const CarouselWrapper = getAdapter('CarouselWrapper')\r\n\r\n return (\r\n <div>\r\n {withoutCarousel ? (\r\n <div className={getGridClasses(columns)}>\r\n {items.map((item, index) => (\r\n <React.Fragment key={index}>\r\n {renderItem(item, index)}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n ) : (\r\n <CarouselWrapper\r\n items={items}\r\n // renderItem={renderItem}\r\n renderItem={(item, index) => renderItem(item as T, index)}\r\n columns={columns}\r\n showControlsOnDesktop={showControlsOnDesktop}\r\n />\r\n )}\r\n\r\n {footnote && (\r\n <div className=\"mt-6\">\r\n <Text variant=\"small-body\" as=\"div\">\r\n {footnote}\r\n </Text>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default GridIterator\r\n"],"names":["GridIterator","items","renderItem","columns","showControlsOnDesktop","withoutCarousel","footnote","getGridClasses","CarouselWrapper","getAdapter","React","item","index","Text"],"mappings":";;;AAaA,MAAMA,IAAe,CAAK;AAAA,EACxB,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,uBAAAC,IAAwB;AAAA,EACxB,iBAAAC,IAAkB;AAAA;AAAA,EAClB,UAAAC;AACF,MAA4B;AACpB,QAAAC,IAAiB,CAACJ,MAAoB;AAC1C,YAAQA,GAAS;AAAA,MACf,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IACX;AAAA,EAAA,GAEIK,IAAkBC,EAAW,iBAAiB;AAGlD,SAAAC,gBAAAA,EAAA,cAAC,OACE,MAAAL,IACEK,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAWH,EAAeJ,CAAO,EAAA,GACnCF,EAAM,IAAI,CAACU,GAAMC,MACfF,gBAAAA,EAAA,cAAAA,EAAM,UAAN,EAAe,KAAKE,EAAA,GAClBV,EAAWS,GAAMC,CAAK,CACzB,CACD,CACH,IAEAF,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,OAAAP;AAAA,MAEA,YAAY,CAACU,GAAMC,MAAUV,EAAWS,GAAWC,CAAK;AAAA,MACxD,SAAAT;AAAA,MACA,uBAAAC;AAAA,IAAA;AAAA,EAAA,GAIHE,KACEI,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,OACb,GAAAA,gBAAAA,EAAA,cAACG,GAAK,EAAA,SAAQ,cAAa,IAAG,SAC3BP,CACH,CACF,CAEJ;AAEJ;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { cva as n } from "class-variance-authority";
|
|
2
|
+
import p from "./index.es6.js";
|
|
3
|
+
import f from "./index.es23.js";
|
|
4
|
+
import e from "react";
|
|
5
|
+
import d from "./index.es14.js";
|
|
6
|
+
import h from "./index.es24.js";
|
|
7
|
+
import { cn as a } from "./index.es25.js";
|
|
8
|
+
import { getAdapter as u } from "./index.es9.js";
|
|
9
|
+
const l = n("rounded-lg p-6 min-h-[190px] h-full", {
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "bg-white",
|
|
13
|
+
sapphire: "bg-sapphire text-whitish"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: "default"
|
|
18
|
+
}
|
|
19
|
+
}), v = n("", {
|
|
20
|
+
variants: {
|
|
21
|
+
variant: {
|
|
22
|
+
default: "text-navy-opacity-60",
|
|
23
|
+
sapphire: "text-whitish-opacity-60"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
variant: "default"
|
|
28
|
+
}
|
|
29
|
+
}), R = ({
|
|
30
|
+
title: s,
|
|
31
|
+
desc: m,
|
|
32
|
+
variant: t,
|
|
33
|
+
link: r,
|
|
34
|
+
detailsText: i
|
|
35
|
+
}) => {
|
|
36
|
+
const o = /* @__PURE__ */ e.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ e.createElement(f, { level: 4, as: "div" }, s), /* @__PURE__ */ e.createElement(h, { className: a(v({ variant: t })), as: "div" }, /* @__PURE__ */ e.createElement(d, { html: m }))), c = u("LinkWrapper");
|
|
37
|
+
return r ? /* @__PURE__ */ e.createElement(
|
|
38
|
+
c,
|
|
39
|
+
{
|
|
40
|
+
href: r,
|
|
41
|
+
className: a(
|
|
42
|
+
l({ variant: t }),
|
|
43
|
+
"transition-all bottom-0 hover:bottom-1 transform duration-300 relative hover:scale1-[1.005]"
|
|
44
|
+
)
|
|
45
|
+
},
|
|
46
|
+
/* @__PURE__ */ e.createElement("div", { className: "flex flex-col justify-between h-full items-start" }, o, i && /* @__PURE__ */ e.createElement(
|
|
47
|
+
p,
|
|
48
|
+
{
|
|
49
|
+
icon: "arrowRight",
|
|
50
|
+
variant: t == "sapphire" ? "white" : "default"
|
|
51
|
+
},
|
|
52
|
+
i || "Подробнее"
|
|
53
|
+
))
|
|
54
|
+
) : /* @__PURE__ */ e.createElement("div", { className: a(l({ variant: t })) }, o);
|
|
55
|
+
};
|
|
56
|
+
export {
|
|
57
|
+
R as default
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=index.es37.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es37.js","sources":["../src/components/cards/Plate.tsx"],"sourcesContent":["import { VariantProps, cva } from 'class-variance-authority'\r\n\r\nimport { ButtonText } from '../ui/button'\r\nimport Heading from '../core/typography/Heading'\r\nimport React from 'react'\r\nimport SafeHtmlRenderer from '../SafeHtml'\r\nimport Text from '../core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nconst plateCardVariants = cva('rounded-lg p-6 min-h-[190px] h-full', {\r\n variants: {\r\n variant: {\r\n default: 'bg-white',\r\n sapphire: 'bg-sapphire text-whitish',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nconst descVariants = cva('', {\r\n variants: {\r\n variant: {\r\n default: 'text-navy-opacity-60',\r\n sapphire: 'text-whitish-opacity-60',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nexport interface PlateCardProps extends VariantProps<typeof plateCardVariants> {\r\n title: string\r\n desc: string\r\n link?: string\r\n detailsText?: string\r\n}\r\n\r\nconst PlateCard: React.FC<PlateCardProps> = ({\r\n title,\r\n desc,\r\n variant,\r\n link,\r\n detailsText,\r\n}) => {\r\n const content = (\r\n <div className=\"space-y-2\">\r\n <Heading level={4} as=\"div\">\r\n {title}\r\n </Heading>\r\n <Text className={cn(descVariants({ variant }))} as={'div'}>\r\n <SafeHtmlRenderer html={desc} />\r\n </Text>\r\n </div>\r\n )\r\n\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n return link ? (\r\n <LinkWrapper\r\n href={link}\r\n className={cn(\r\n plateCardVariants({ variant }),\r\n 'transition-all bottom-0 hover:bottom-1 transform duration-300 relative hover:scale1-[1.005]'\r\n )}\r\n >\r\n <div className=\"flex flex-col justify-between h-full items-start\">\r\n {content}\r\n {detailsText && (\r\n <ButtonText\r\n icon=\"arrowRight\"\r\n variant={variant == 'sapphire' ? 'white' : 'default'}\r\n >\r\n {detailsText || 'Подробнее'}\r\n </ButtonText>\r\n )}\r\n </div>\r\n </LinkWrapper>\r\n ) : (\r\n <div className={cn(plateCardVariants({ variant }))}>{content}</div>\r\n )\r\n}\r\n\r\nexport default PlateCard\r\n"],"names":["plateCardVariants","cva","descVariants","PlateCard","title","desc","variant","link","detailsText","content","React","Heading","Text","cn","SafeHtmlRenderer","LinkWrapper","getAdapter","ButtonText"],"mappings":";;;;;;;;AAUA,MAAMA,IAAoBC,EAAI,uCAAuC;AAAA,EACnE,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEKC,IAAeD,EAAI,IAAI;AAAA,EAC3B,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GASKE,IAAsC,CAAC;AAAA,EAC3C,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AACF,MAAM;AACJ,QAAMC,IACJC,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,YACb,GAAAA,gBAAAA,EAAA,cAACC,GAAQ,EAAA,OAAO,GAAG,IAAG,MACnB,GAAAP,CACH,GACCM,gBAAAA,EAAA,cAAAE,GAAA,EAAK,WAAWC,EAAGX,EAAa,EAAE,SAAAI,EAAQ,CAAC,CAAC,GAAG,IAAI,MAAA,GACjDI,gBAAAA,EAAA,cAAAI,GAAA,EAAiB,MAAMT,EAAA,CAAM,CAChC,CACF,GAGIU,IAAcC,EAAW,aAAa;AAE5C,SAAOT,IACLG,gBAAAA,EAAA;AAAA,IAACK;AAAA,IAAA;AAAA,MACC,MAAMR;AAAA,MACN,WAAWM;AAAA,QACTb,EAAkB,EAAE,SAAAM,GAAS;AAAA,QAC7B;AAAA,MACF;AAAA,IAAA;AAAA,IAECI,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,mDAAA,GACZD,GACAD,KACCE,gBAAAA,EAAA;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAASX,KAAW,aAAa,UAAU;AAAA,MAAA;AAAA,MAE1CE,KAAe;AAAA,IAAA,CAGtB;AAAA,EACF,IAECE,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAWG,EAAGb,EAAkB,EAAE,SAAAM,EAAS,CAAA,CAAC,EAAA,GAAIG,CAAQ;AAEjE;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { cva as d } from "class-variance-authority";
|
|
2
|
+
import c from "./index.es6.js";
|
|
3
|
+
import g from "./index.es23.js";
|
|
4
|
+
import e from "react";
|
|
5
|
+
import u from "./index.es24.js";
|
|
6
|
+
import { cn as o } from "./index.es25.js";
|
|
7
|
+
import { getAdapter as m } from "./index.es9.js";
|
|
8
|
+
const x = d(
|
|
9
|
+
"group p-6 rounded-lg min-h-[300px] flex flex-col justify-between gap-12 items-start relative hover:scale1-[1.005] h-full",
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
default: "text-navy bg-whitish hover1:bg-navy-opacity-4 hover1:text-navy",
|
|
14
|
+
// navy: "text-whitish bg-gradient-to-b from-navy to-sapphire hover:from-sapphire hover:to-navy",
|
|
15
|
+
navy: "text-whitish primary-gradient"
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
1: "sm:col-span-1",
|
|
19
|
+
2: "sm:col-span-2"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
variant: "default",
|
|
24
|
+
size: 1
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
), E = d("", {
|
|
28
|
+
variants: {
|
|
29
|
+
variant: {
|
|
30
|
+
default: "text-navy-opacity-60",
|
|
31
|
+
navy: "text-whitish-opacity-60"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
variant: "default"
|
|
36
|
+
}
|
|
37
|
+
}), j = ({
|
|
38
|
+
title: i,
|
|
39
|
+
desc: p,
|
|
40
|
+
icon: v,
|
|
41
|
+
link: l,
|
|
42
|
+
variant: t,
|
|
43
|
+
size: s,
|
|
44
|
+
buttons: r
|
|
45
|
+
}) => {
|
|
46
|
+
const f = m("LinkWrapper"), h = m("ImageWrapper");
|
|
47
|
+
let n = /* @__PURE__ */ e.createElement("div", { className: o(x({ variant: t, size: s })) }, /* @__PURE__ */ e.createElement("div", { className: "rounded-lg p-4 bg-turquoise-opacity-20" }, /* @__PURE__ */ e.createElement(
|
|
48
|
+
h,
|
|
49
|
+
{
|
|
50
|
+
src: v,
|
|
51
|
+
alt: `Изображение для ${i}`,
|
|
52
|
+
width: 32,
|
|
53
|
+
height: 32,
|
|
54
|
+
className: "object-contain"
|
|
55
|
+
}
|
|
56
|
+
)), /* @__PURE__ */ e.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ e.createElement(g, { level: 5, className: "mt-4 mb-2" }, i), /* @__PURE__ */ e.createElement(u, { variant: "small-body", className: o(E({ variant: t })) }, p)), !(r && r.length) && /* @__PURE__ */ e.createElement(
|
|
57
|
+
c,
|
|
58
|
+
{
|
|
59
|
+
icon: "arrowRight",
|
|
60
|
+
variant: t === "navy" ? "white" : "default"
|
|
61
|
+
},
|
|
62
|
+
"Подробнее"
|
|
63
|
+
), r && /* @__PURE__ */ e.createElement("div", { className: "flex space-x-3" }, r?.map((a, y) => /* @__PURE__ */ e.createElement("div", { key: y }, /* @__PURE__ */ e.createElement(
|
|
64
|
+
c,
|
|
65
|
+
{
|
|
66
|
+
variant: t === "navy" ? "white" : "default",
|
|
67
|
+
icon: a.icon,
|
|
68
|
+
asChild: !0
|
|
69
|
+
},
|
|
70
|
+
/* @__PURE__ */ e.createElement(
|
|
71
|
+
"a",
|
|
72
|
+
{
|
|
73
|
+
href: a.href,
|
|
74
|
+
target: a.target || "_self",
|
|
75
|
+
download: a.download
|
|
76
|
+
},
|
|
77
|
+
a.text
|
|
78
|
+
)
|
|
79
|
+
)))));
|
|
80
|
+
return l && (n = /* @__PURE__ */ e.createElement(
|
|
81
|
+
f,
|
|
82
|
+
{
|
|
83
|
+
href: l,
|
|
84
|
+
className: o(
|
|
85
|
+
"relative transition-all bottom-0 hover:bottom-2 transform duration-300 border border-transparent rounded-lg hover1:border-navy-opacity-16",
|
|
86
|
+
s === 2 ? "sm:col-span-2" : "sm:col-span-1"
|
|
87
|
+
)
|
|
88
|
+
},
|
|
89
|
+
n
|
|
90
|
+
)), n;
|
|
91
|
+
};
|
|
92
|
+
export {
|
|
93
|
+
j as default
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=index.es38.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es38.js","sources":["../src/components/cards/Product.tsx"],"sourcesContent":["import {\r\n ButtonTextIconName,\r\n ButtonTextPropsWithoutHTMLAttributes,\r\n} from '../ui/button/ButtonText'\r\nimport { VariantProps, cva } from 'class-variance-authority'\r\n\r\nimport { ButtonText } from '../ui/button'\r\nimport Heading from '../core/typography/Heading'\r\nimport React from 'react'\r\nimport Text from '../core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nconst productCardVariants = cva(\r\n 'group p-6 rounded-lg min-h-[300px] flex flex-col justify-between gap-12 items-start relative hover:scale1-[1.005] h-full',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'text-navy bg-whitish hover1:bg-navy-opacity-4 hover1:text-navy',\r\n // navy: \"text-whitish bg-gradient-to-b from-navy to-sapphire hover:from-sapphire hover:to-navy\",\r\n navy: 'text-whitish primary-gradient',\r\n },\r\n size: {\r\n 1: 'sm:col-span-1',\r\n 2: 'sm:col-span-2',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 1,\r\n },\r\n }\r\n)\r\n\r\nconst descVariants = cva('', {\r\n variants: {\r\n variant: {\r\n default: 'text-navy-opacity-60',\r\n navy: 'text-whitish-opacity-60',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nexport interface ProductCardButtonProps\r\n extends ButtonTextPropsWithoutHTMLAttributes {\r\n href?: string\r\n target?: '_blank' | '_self'\r\n icon?: ButtonTextIconName\r\n download?: boolean\r\n}\r\n\r\nexport interface ProductCardProps\r\n extends React.HTMLAttributes<HTMLAnchorElement>,\r\n VariantProps<typeof productCardVariants> {\r\n title: string\r\n desc: string\r\n icon: string\r\n link?: string\r\n size?: 1 | 2\r\n buttons?: ProductCardButtonProps[]\r\n}\r\n\r\nexport interface ProductCardPropsWithoutHtmlAttributes\r\n extends Omit<ProductCardProps, keyof React.HTMLAttributes<HTMLDivElement>> {\r\n title: string\r\n}\r\n\r\nconst ProductCard: React.FC<ProductCardProps> = ({\r\n title,\r\n desc,\r\n icon,\r\n link,\r\n variant,\r\n size,\r\n buttons,\r\n}) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n const ImageWrapper = getAdapter('ImageWrapper')\r\n\r\n let component = (\r\n <div className={cn(productCardVariants({ variant, size }))}>\r\n <div className=\"rounded-lg p-4 bg-turquoise-opacity-20\">\r\n <ImageWrapper\r\n src={icon}\r\n alt={`Изображение для ${title}`}\r\n width={32}\r\n height={32}\r\n className=\"object-contain\"\r\n />\r\n </div>\r\n <div className=\"space-y-2\">\r\n <Heading level={5} className=\"mt-4 mb-2\">\r\n {title}\r\n </Heading>\r\n <Text variant=\"small-body\" className={cn(descVariants({ variant }))}>\r\n {desc}\r\n </Text>\r\n </div>\r\n {/* TODO: here is the button, should be a link */}\r\n\r\n {!(buttons && buttons.length) && (\r\n <ButtonText\r\n icon=\"arrowRight\"\r\n variant={variant === 'navy' ? 'white' : 'default'}\r\n >\r\n Подробнее\r\n </ButtonText>\r\n )}\r\n\r\n {buttons && (\r\n <div className=\"flex space-x-3\">\r\n {buttons?.map((button, index) => (\r\n <div key={index}>\r\n <ButtonText\r\n variant={variant === 'navy' ? 'white' : 'default'}\r\n icon={button.icon}\r\n asChild\r\n >\r\n <a\r\n href={button.href}\r\n target={button.target || '_self'}\r\n download={button.download}\r\n >\r\n {button.text}\r\n </a>\r\n </ButtonText>\r\n {/* <ButtonSecondary asChild variant={\"outline\"}>\r\n <a href={button.href} target={button.target}>\r\n {button.text}\r\n </a>\r\n </ButtonSecondary> */}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n\r\n if (link) {\r\n component = (\r\n <LinkWrapper\r\n href={link}\r\n className={cn(\r\n 'relative transition-all bottom-0 hover:bottom-2 transform duration-300 border border-transparent rounded-lg hover1:border-navy-opacity-16',\r\n size === 2 ? 'sm:col-span-2' : 'sm:col-span-1'\r\n )}\r\n >\r\n {component}\r\n </LinkWrapper>\r\n )\r\n }\r\n\r\n return component\r\n}\r\n\r\nexport default ProductCard\r\n"],"names":["productCardVariants","cva","descVariants","ProductCard","title","desc","icon","link","variant","size","buttons","LinkWrapper","getAdapter","ImageWrapper","component","React","cn","Heading","Text","ButtonText","button","index"],"mappings":";;;;;;;AAaA,MAAMA,IAAsBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA;AAAA,QAEF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF,GAEMC,IAAeD,EAAI,IAAI;AAAA,EAC3B,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GA0BKE,IAA0C,CAAC;AAAA,EAC/C,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACE,QAAAC,IAAcC,EAAW,aAAa,GACtCC,IAAeD,EAAW,cAAc;AAE9C,MAAIE,IACFC,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAWC,EAAGhB,EAAoB,EAAE,SAAAQ,GAAS,MAAAC,EAAA,CAAM,CAAC,EAAA,GACtDM,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,4CACbA,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,KAAKP;AAAA,MACL,KAAK,mBAAmBF,CAAK;AAAA,MAC7B,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAU;AAAA,IAAA;AAAA,EAAA,CAEd,GACCW,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,YACb,GAAAA,gBAAAA,EAAA,cAACE,GAAQ,EAAA,OAAO,GAAG,WAAU,YAC1B,GAAAb,CACH,GACCW,gBAAAA,EAAA,cAAAG,GAAA,EAAK,SAAQ,cAAa,WAAWF,EAAGd,EAAa,EAAE,SAAAM,EAAS,CAAA,CAAC,EAC/D,GAAAH,CACH,CACF,GAGC,EAAEK,KAAWA,EAAQ,WACpBK,gBAAAA,EAAA;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAASX,MAAY,SAAS,UAAU;AAAA,IAAA;AAAA,IACzC;AAAA,EAAA,GAKFE,KACEK,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,oBACZL,GAAS,IAAI,CAACU,GAAQC,MACpBN,gBAAAA,EAAA,cAAA,OAAA,EAAI,KAAKM,KACRN,gBAAAA,EAAA;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,SAASX,MAAY,SAAS,UAAU;AAAA,MACxC,MAAMY,EAAO;AAAA,MACb,SAAO;AAAA,IAAA;AAAA,IAEPL,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAMK,EAAO;AAAA,QACb,QAAQA,EAAO,UAAU;AAAA,QACzB,UAAUA,EAAO;AAAA,MAAA;AAAA,MAEhBA,EAAO;AAAA,IACV;AAAA,EAAA,CAOJ,CACD,CACH,CAEJ;AAGF,SAAIb,MAEAO,IAAAC,gBAAAA,EAAA;AAAA,IAACJ;AAAA,IAAA;AAAA,MACC,MAAMJ;AAAA,MACN,WAAWS;AAAA,QACT;AAAA,QACAP,MAAS,IAAI,kBAAkB;AAAA,MACjC;AAAA,IAAA;AAAA,IAECK;AAAA,EAAA,IAKAA;AACT;"}
|