@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.
Files changed (176) hide show
  1. package/dist/Adapters.d.ts +8 -0
  2. package/dist/Adapters.d.ts.map +1 -1
  3. package/dist/components/CarouselDotButton.d.ts +13 -0
  4. package/dist/components/CarouselDotButton.d.ts.map +1 -0
  5. package/dist/components/GridIterator.d.ts +13 -0
  6. package/dist/components/GridIterator.d.ts.map +1 -0
  7. package/dist/components/Informer.d.ts +6 -0
  8. package/dist/components/Informer.d.ts.map +1 -0
  9. package/dist/components/SafeHtml.d.ts +6 -0
  10. package/dist/components/SafeHtml.d.ts.map +1 -0
  11. package/dist/components/breadcrumbs/Breadcrumb.d.ts +9 -0
  12. package/dist/components/breadcrumbs/Breadcrumb.d.ts.map +1 -0
  13. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +9 -0
  14. package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  15. package/dist/components/breadcrumbs/index.d.ts +5 -0
  16. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  17. package/dist/components/cards/Advantage.d.ts +10 -0
  18. package/dist/components/cards/Advantage.d.ts.map +1 -0
  19. package/dist/components/cards/Advantage2.d.ts +14 -0
  20. package/dist/components/cards/Advantage2.d.ts.map +1 -0
  21. package/dist/components/cards/FeaturedCard.d.ts +18 -0
  22. package/dist/components/cards/FeaturedCard.d.ts.map +1 -0
  23. package/dist/components/cards/Plate.d.ts +15 -0
  24. package/dist/components/cards/Plate.d.ts.map +1 -0
  25. package/dist/components/cards/Product.d.ts +28 -0
  26. package/dist/components/cards/Product.d.ts.map +1 -0
  27. package/dist/components/cards/Rate.d.ts +35 -0
  28. package/dist/components/cards/Rate.d.ts.map +1 -0
  29. package/dist/components/core/typography/Heading.d.ts +11 -0
  30. package/dist/components/core/typography/Heading.d.ts.map +1 -0
  31. package/dist/components/core/typography/Text.d.ts +11 -0
  32. package/dist/components/core/typography/Text.d.ts.map +1 -0
  33. package/dist/components/core/typography/typeVariants.d.ts +4 -0
  34. package/dist/components/core/typography/typeVariants.d.ts.map +1 -0
  35. package/dist/components/ui/Tag.d.ts +16 -0
  36. package/dist/components/ui/Tag.d.ts.map +1 -0
  37. package/dist/components/ui/alert.d.ts +2 -1
  38. package/dist/components/ui/alert.d.ts.map +1 -1
  39. package/dist/components/ui/button/index.d.ts +8 -0
  40. package/dist/components/ui/button/index.d.ts.map +1 -1
  41. package/dist/components/ui/carousel.d.ts +28 -0
  42. package/dist/components/ui/carousel.d.ts.map +1 -0
  43. package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts +14 -0
  44. package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts.map +1 -0
  45. package/dist/components/ui/checkbox/checkbox.d.ts +12 -0
  46. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  47. package/dist/components/ui/checkbox/index.d.ts +5 -0
  48. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  49. package/dist/components/ui/input/Input.d.ts +11 -0
  50. package/dist/components/ui/input/Input.d.ts.map +1 -0
  51. package/dist/components/ui/input/InputWithLabel.d.ts +13 -0
  52. package/dist/components/ui/input/InputWithLabel.d.ts.map +1 -0
  53. package/dist/components/ui/input/SearchInput.d.ts +12 -0
  54. package/dist/components/ui/input/SearchInput.d.ts.map +1 -0
  55. package/dist/components/ui/input/SearchInputWithButton.d.ts +17 -0
  56. package/dist/components/ui/input/SearchInputWithButton.d.ts.map +1 -0
  57. package/dist/components/ui/input/index.d.ts +5 -0
  58. package/dist/components/ui/input/index.d.ts.map +1 -0
  59. package/dist/components/ui/input/types.d.ts +2 -0
  60. package/dist/components/ui/input/types.d.ts.map +1 -0
  61. package/dist/components/ui/label.d.ts +8 -0
  62. package/dist/components/ui/label.d.ts.map +1 -0
  63. package/dist/components/ui/popover.d.ts +7 -0
  64. package/dist/components/ui/popover.d.ts.map +1 -0
  65. package/dist/components/ui/tooltip.d.ts +8 -0
  66. package/dist/components/ui/tooltip.d.ts.map +1 -0
  67. package/dist/decorators/CarouselWrapper.d.ts +10 -0
  68. package/dist/decorators/CarouselWrapper.d.ts.map +1 -0
  69. package/dist/decorators/ImageWrapper.d.ts +11 -0
  70. package/dist/decorators/ImageWrapper.d.ts.map +1 -0
  71. package/dist/index.d.ts +24 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.es.js +40 -12
  74. package/dist/index.es.js.map +1 -1
  75. package/dist/index.es10.js +5 -5
  76. package/dist/index.es10.js.map +1 -1
  77. package/dist/index.es11.js +32 -6
  78. package/dist/index.es11.js.map +1 -1
  79. package/dist/index.es12.js +25 -22
  80. package/dist/index.es12.js.map +1 -1
  81. package/dist/index.es13.js +28 -0
  82. package/dist/index.es13.js.map +1 -0
  83. package/dist/index.es14.js +76 -0
  84. package/dist/index.es14.js.map +1 -0
  85. package/dist/index.es15.js +38 -0
  86. package/dist/index.es15.js.map +1 -0
  87. package/dist/index.es16.js +36 -0
  88. package/dist/index.es16.js.map +1 -0
  89. package/dist/index.es17.js +33 -0
  90. package/dist/index.es17.js.map +1 -0
  91. package/dist/index.es18.js +31 -0
  92. package/dist/index.es18.js.map +1 -0
  93. package/dist/index.es19.js +186 -0
  94. package/dist/index.es19.js.map +1 -0
  95. package/dist/index.es2.js +1 -1
  96. package/dist/index.es20.js +55 -0
  97. package/dist/index.es20.js.map +1 -0
  98. package/dist/index.es21.js +60 -0
  99. package/dist/index.es21.js.map +1 -0
  100. package/dist/index.es22.js +62 -0
  101. package/dist/index.es22.js.map +1 -0
  102. package/dist/index.es23.js +22 -0
  103. package/dist/index.es23.js.map +1 -0
  104. package/dist/index.es24.js +22 -0
  105. package/dist/index.es24.js.map +1 -0
  106. package/dist/index.es25.js +9 -0
  107. package/dist/index.es25.js.map +1 -0
  108. package/dist/index.es26.js +25 -0
  109. package/dist/index.es26.js.map +1 -0
  110. package/dist/index.es27.js +30 -0
  111. package/dist/index.es27.js.map +1 -0
  112. package/dist/index.es28.js +5 -0
  113. package/dist/index.es28.js.map +1 -0
  114. package/dist/index.es29.js +23 -0
  115. package/dist/index.es29.js.map +1 -0
  116. package/dist/index.es3.js +2 -2
  117. package/dist/index.es30.js +23 -0
  118. package/dist/index.es30.js.map +1 -0
  119. package/dist/index.es31.js +14 -0
  120. package/dist/index.es31.js.map +1 -0
  121. package/dist/index.es32.js +88 -0
  122. package/dist/index.es32.js.map +1 -0
  123. package/dist/index.es33.js +22 -0
  124. package/dist/index.es33.js.map +1 -0
  125. package/dist/index.es34.js +49 -0
  126. package/dist/index.es34.js.map +1 -0
  127. package/dist/index.es35.js +48 -0
  128. package/dist/index.es35.js.map +1 -0
  129. package/dist/index.es36.js +40 -0
  130. package/dist/index.es36.js.map +1 -0
  131. package/dist/index.es37.js +59 -0
  132. package/dist/index.es37.js.map +1 -0
  133. package/dist/index.es38.js +95 -0
  134. package/dist/index.es38.js.map +1 -0
  135. package/dist/index.es39.js +101 -0
  136. package/dist/index.es39.js.map +1 -0
  137. package/dist/index.es4.js +1 -1
  138. package/dist/index.es40.js +30 -0
  139. package/dist/index.es40.js.map +1 -0
  140. package/dist/index.es41.js +19 -0
  141. package/dist/index.es41.js.map +1 -0
  142. package/dist/index.es42.js +7 -0
  143. package/dist/index.es42.js.map +1 -0
  144. package/dist/index.es5.js +1 -1
  145. package/dist/index.es6.js +1 -1
  146. package/dist/index.es7.js +1 -1
  147. package/dist/index.es8.js +1 -1
  148. package/dist/index.es9.js.map +1 -1
  149. package/dist/lib/utils/truncateText.d.ts +3 -0
  150. package/dist/lib/utils/truncateText.d.ts.map +1 -0
  151. package/dist/partners/alfa.svg +3 -0
  152. package/dist/partners/mts.svg +6 -0
  153. package/dist/partners/otkrytie.svg +8 -0
  154. package/dist/partners/pochtabank.svg +11 -0
  155. package/dist/partners/rosbank.svg +10 -0
  156. package/dist/partners/rostelekom.svg +7 -0
  157. package/dist/partners/sberbank.svg +33 -0
  158. package/dist/partners/uralsib.svg +12 -0
  159. package/dist/partners/vtb.svg +16 -0
  160. package/dist/sections/CTA.d.ts +12 -0
  161. package/dist/sections/CTA.d.ts.map +1 -0
  162. package/dist/sections/CardsGridSection.d.ts +21 -0
  163. package/dist/sections/CardsGridSection.d.ts.map +1 -0
  164. package/dist/sections/Hero.d.ts +21 -0
  165. package/dist/sections/Hero.d.ts.map +1 -0
  166. package/dist/sections/Partners.d.ts +13 -0
  167. package/dist/sections/Partners.d.ts.map +1 -0
  168. package/dist/sections/Section.d.ts +22 -0
  169. package/dist/sections/Section.d.ts.map +1 -0
  170. package/dist/sections/common.d.ts +14 -0
  171. package/dist/sections/common.d.ts.map +1 -0
  172. package/dist/slides/crossed-circles.svg +59 -0
  173. package/dist/styles.css +2250 -730
  174. package/dist/utils/unique.d.ts +2 -0
  175. package/dist/utils/unique.d.ts.map +1 -0
  176. 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.es11.js";
5
- import { iconDefiner as d } from "./index.es12.js";
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;"}