@iit/precision-ui 0.2.0 → 0.4.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 (104) hide show
  1. package/dist/Adapters.d.ts +0 -7
  2. package/dist/Adapters.d.ts.map +1 -1
  3. package/dist/components/GridIterator.d.ts.map +1 -1
  4. package/dist/components/core/typography/Heading.d.ts +1 -0
  5. package/dist/components/core/typography/Heading.d.ts.map +1 -1
  6. package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts.map +1 -1
  7. package/dist/components/ui/form.d.ts +24 -0
  8. package/dist/components/ui/form.d.ts.map +1 -0
  9. package/dist/components/ui/textarea/Textarea.d.ts +10 -0
  10. package/dist/components/ui/textarea/Textarea.d.ts.map +1 -0
  11. package/dist/components/ui/textarea/TextareaWithLabel.d.ts +11 -0
  12. package/dist/components/ui/textarea/TextareaWithLabel.d.ts.map +1 -0
  13. package/dist/components/ui/textarea/index.d.ts +5 -0
  14. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  15. package/dist/decorators/CarouselWrapper.d.ts +4 -4
  16. package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.es.js +55 -41
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/index.es10.js +1 -1
  22. package/dist/index.es11.js +1 -1
  23. package/dist/index.es12.js +13 -14
  24. package/dist/index.es12.js.map +1 -1
  25. package/dist/index.es13.js +27 -24
  26. package/dist/index.es13.js.map +1 -1
  27. package/dist/index.es14.js +28 -73
  28. package/dist/index.es14.js.map +1 -1
  29. package/dist/index.es15.js +15 -23
  30. package/dist/index.es15.js.map +1 -1
  31. package/dist/index.es16.js +23 -31
  32. package/dist/index.es16.js.map +1 -1
  33. package/dist/index.es17.js +71 -28
  34. package/dist/index.es17.js.map +1 -1
  35. package/dist/index.es18.js +33 -26
  36. package/dist/index.es18.js.map +1 -1
  37. package/dist/index.es19.js +25 -176
  38. package/dist/index.es19.js.map +1 -1
  39. package/dist/index.es2.js +1 -1
  40. package/dist/index.es20.js +29 -51
  41. package/dist/index.es20.js.map +1 -1
  42. package/dist/index.es21.js +25 -54
  43. package/dist/index.es21.js.map +1 -1
  44. package/dist/index.es22.js +178 -54
  45. package/dist/index.es22.js.map +1 -1
  46. package/dist/index.es23.js +50 -17
  47. package/dist/index.es23.js.map +1 -1
  48. package/dist/index.es24.js +56 -18
  49. package/dist/index.es24.js.map +1 -1
  50. package/dist/index.es25.js +59 -6
  51. package/dist/index.es25.js.map +1 -1
  52. package/dist/index.es26.js +19 -21
  53. package/dist/index.es26.js.map +1 -1
  54. package/dist/index.es27.js +18 -26
  55. package/dist/index.es27.js.map +1 -1
  56. package/dist/index.es28.js +88 -2
  57. package/dist/index.es28.js.map +1 -1
  58. package/dist/index.es29.js +6 -20
  59. package/dist/index.es29.js.map +1 -1
  60. package/dist/index.es3.js +2 -2
  61. package/dist/index.es30.js +21 -19
  62. package/dist/index.es30.js.map +1 -1
  63. package/dist/index.es31.js +18 -9
  64. package/dist/index.es31.js.map +1 -1
  65. package/dist/index.es32.js +19 -84
  66. package/dist/index.es32.js.map +1 -1
  67. package/dist/index.es33.js +10 -18
  68. package/dist/index.es33.js.map +1 -1
  69. package/dist/index.es34.js +77 -38
  70. package/dist/index.es34.js.map +1 -1
  71. package/dist/index.es35.js +15 -41
  72. package/dist/index.es35.js.map +1 -1
  73. package/dist/index.es36.js +42 -33
  74. package/dist/index.es36.js.map +1 -1
  75. package/dist/index.es37.js +40 -51
  76. package/dist/index.es37.js.map +1 -1
  77. package/dist/index.es38.js +33 -88
  78. package/dist/index.es38.js.map +1 -1
  79. package/dist/index.es39.js +37 -79
  80. package/dist/index.es39.js.map +1 -1
  81. package/dist/index.es4.js +1 -1
  82. package/dist/index.es40.js +86 -21
  83. package/dist/index.es40.js.map +1 -1
  84. package/dist/index.es41.js +97 -15
  85. package/dist/index.es41.js.map +1 -1
  86. package/dist/index.es42.js +27 -4
  87. package/dist/index.es42.js.map +1 -1
  88. package/dist/index.es43.js +48 -0
  89. package/dist/index.es43.js.map +1 -0
  90. package/dist/index.es44.js +19 -0
  91. package/dist/index.es44.js.map +1 -0
  92. package/dist/index.es45.js +225 -0
  93. package/dist/index.es45.js.map +1 -0
  94. package/dist/index.es46.js +7 -0
  95. package/dist/index.es46.js.map +1 -0
  96. package/dist/index.es5.js +1 -1
  97. package/dist/index.es6.js +1 -1
  98. package/dist/index.es7.js +1 -1
  99. package/dist/index.es8.js +1 -1
  100. package/dist/index.es9.js.map +1 -1
  101. package/dist/styles.css +35 -2
  102. package/package.json +18 -4
  103. package/dist/utils/unique.d.ts +0 -2
  104. package/dist/utils/unique.d.ts.map +0 -1
@@ -1,23 +1,25 @@
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
1
+ import { ArrowSliderPrev16X16 as s, ArrowSliderNext16X16 as m, MoreLink16X16 as l, LessLink16X16 as u } from "@iit/precision-ui-icons";
2
+ import { ThumbsUp as f, ThumbsDown as p } from "lucide-react";
3
+ import o from "react";
4
+ const i = "1em", a = (e) => Object.keys(e).reduce((r, t) => (r[t] = ({
5
+ width: n = i,
6
+ height: c = i
7
+ }) => o.createElement(e[t], { width: n, height: c }), r), {}), d = {
8
+ chevronLeft: s,
9
+ chevronRight: m,
10
+ plus: l,
11
+ minus: u,
12
+ like: f,
13
+ dislike: p
14
+ }, h = a(d), I = (e, r, t) => {
15
+ if (e) {
16
+ const n = h[e];
17
+ if (n)
18
+ return n({ width: r, height: t });
14
19
  }
15
- ));
16
- s.displayName = o.Content.displayName;
20
+ return /* @__PURE__ */ o.createElement(o.Fragment, null);
21
+ };
17
22
  export {
18
- l as Tooltip,
19
- s as TooltipContent,
20
- n as TooltipProvider,
21
- p as TooltipTrigger
23
+ I as iconDefiner
22
24
  };
23
25
  //# sourceMappingURL=index.es30.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es30.js","sources":["../src/components/ui/icon.tsx"],"sourcesContent":["import {\r\n ArrowSliderNext16X16,\r\n ArrowSliderPrev16X16,\r\n LessLink16X16,\r\n MoreLink16X16,\r\n} from '@iit/precision-ui-icons'\r\nimport { ThumbsDown, ThumbsUp } from 'lucide-react'\r\n\r\nimport React from 'react'\r\n\r\nconst DEFAULT_ICON_SIZE = '1em'\r\n\r\nexport type IconName =\r\n | 'chevronLeft'\r\n | 'chevronRight'\r\n | 'plus'\r\n | 'minus'\r\n | 'like'\r\n | 'dislike'\r\n\r\n// TODO: move to separate file\r\n// type IconMap = {\r\n// [key in IconName]: (props: {\r\n// width?: number | string\r\n// height?: number | string\r\n// }) => React.ReactElement\r\n// }\r\n\r\ninterface IconProps {\r\n width?: number | string\r\n height?: number | string\r\n}\r\n\r\nconst generateIconMap = (\r\n icons: Record<IconName, React.ComponentType<React.SVGProps<SVGSVGElement>>>\r\n) => {\r\n return Object.keys(icons).reduce<\r\n Record<IconName, (props: IconProps) => React.ReactElement>\r\n >((acc, key) => {\r\n acc[key as IconName] = ({\r\n width = DEFAULT_ICON_SIZE,\r\n height = DEFAULT_ICON_SIZE,\r\n }: IconProps) =>\r\n React.createElement(icons[key as IconName], { width, height })\r\n return acc\r\n }, {} as Record<IconName, (props: IconProps) => React.ReactElement>)\r\n}\r\n\r\nconst icons: Record<\r\n IconName,\r\n React.ComponentType<React.SVGProps<SVGSVGElement>>\r\n> = {\r\n chevronLeft: ArrowSliderPrev16X16,\r\n chevronRight: ArrowSliderNext16X16,\r\n plus: MoreLink16X16,\r\n minus: LessLink16X16,\r\n like: ThumbsUp,\r\n dislike: ThumbsDown,\r\n}\r\n\r\nconst iconMap = generateIconMap(icons)\r\nexport const iconDefiner = (\r\n icon?: IconName,\r\n width?: number | string,\r\n height?: number | string\r\n): React.ReactElement => {\r\n if (icon) {\r\n const selectedIcon = iconMap[icon]\r\n if (selectedIcon) {\r\n return selectedIcon({ width, height })\r\n }\r\n }\r\n return <></>\r\n}\r\n"],"names":["DEFAULT_ICON_SIZE","generateIconMap","icons","acc","key","width","height","React","ArrowSliderPrev16X16","ArrowSliderNext16X16","MoreLink16X16","LessLink16X16","ThumbsUp","ThumbsDown","iconMap","iconDefiner","icon","selectedIcon"],"mappings":";;;AAUA,MAAMA,IAAoB,OAuBpBC,IAAkB,CACtBC,MAEO,OAAO,KAAKA,CAAK,EAAE,OAExB,CAACC,GAAKC,OACFD,EAAAC,CAAe,IAAI,CAAC;AAAA,EACtB,OAAAC,IAAQL;AAAA,EACR,QAAAM,IAASN;AAAA,MAETO,EAAM,cAAcL,EAAME,CAAe,GAAG,EAAE,OAAAC,GAAO,QAAAC,EAAA,CAAQ,GACxDH,IACN,CAAgE,CAAA,GAG/DD,IAGF;AAAA,EACF,aAAaM;AAAA,EACb,cAAcC;AAAA,EACd,MAAMC;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,SAASC;AACX,GAEMC,IAAUb,EAAgBC,CAAK,GACxBa,IAAc,CACzBC,GACAX,GACAC,MACuB;AACvB,MAAIU,GAAM;AACF,UAAAC,IAAeH,EAAQE,CAAI;AACjC,QAAIC;AACF,aAAOA,EAAa,EAAE,OAAAZ,GAAO,QAAAC,EAAQ,CAAA;AAAA,EAEzC;AACA,SAASC,gBAAAA,EAAA,cAAAA,EAAA,UAAA,IAAA;AACX;"}
@@ -1,14 +1,23 @@
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",
1
+ import * as t from "@radix-ui/react-popover";
2
+ import * as e from "react";
3
+ import { cn as i } from "./index.es29.js";
4
+ const p = t.Root, l = t.Trigger, s = e.forwardRef(({ className: o, align: a = "center", sideOffset: r = 4, ...d }, n) => /* @__PURE__ */ e.createElement(t.Portal, null, /* @__PURE__ */ e.createElement(
5
+ t.Content,
5
6
  {
6
- key: r,
7
- style: { "--counter": r + 1 }
8
- },
9
- /* @__PURE__ */ e.createElement(m, { ...a })
7
+ ref: n,
8
+ align: a,
9
+ sideOffset: r,
10
+ className: i(
11
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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",
12
+ o
13
+ ),
14
+ ...d
15
+ }
10
16
  )));
17
+ s.displayName = t.Content.displayName;
11
18
  export {
12
- s as default
19
+ p as Popover,
20
+ s as PopoverContent,
21
+ l as PopoverTrigger
13
22
  };
14
23
  //# sourceMappingURL=index.es31.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es31.js","sources":["../src/components/ui/popover.tsx"],"sourcesContent":["import * as PopoverPrimitive from '@radix-ui/react-popover'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst Popover = PopoverPrimitive.Root\r\n\r\nconst PopoverTrigger = PopoverPrimitive.Trigger\r\n\r\nconst PopoverContent = React.forwardRef<\r\n React.ElementRef<typeof PopoverPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n ref={ref}\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </PopoverPrimitive.Portal>\r\n))\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\r\n\r\nexport { Popover, PopoverTrigger, PopoverContent }\r\n"],"names":["Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","React","className","align","sideOffset","props","ref","cn"],"mappings":";;;AAKA,MAAMA,IAAUC,EAAiB,MAE3BC,IAAiBD,EAAiB,SAElCE,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,OAAAC,IAAQ,UAAU,YAAAC,IAAa,GAAG,GAAGC,KAASC,MAC3D,gBAAAL,EAAA,cAAAH,EAAiB,QAAjB,MACC,gBAAAG,EAAA;AAAA,EAACH,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAQ;AAAA,IACA,OAAAH;AAAA,IACA,YAAAC;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CACF,CACD;AACDL,EAAe,cAAcF,EAAiB,QAAQ;"}
@@ -1,88 +1,23 @@
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
- }
1
+ import * as t from "react";
2
+ import * as o from "@radix-ui/react-tooltip";
3
+ import { cn as r } from "./index.es29.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
54
12
  ),
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
- };
13
+ ...a
14
+ }
15
+ ));
16
+ s.displayName = o.Content.displayName;
85
17
  export {
86
- B as default
18
+ l as Tooltip,
19
+ s as TooltipContent,
20
+ n as TooltipProvider,
21
+ p as TooltipTrigger
87
22
  };
88
23
  //# sourceMappingURL=index.es32.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es32.js","sources":["../src/components/ui/tooltip.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider\r\n\r\nconst Tooltip = TooltipPrimitive.Root\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger\r\n\r\nconst TooltipContent = React.forwardRef<\r\n React.ElementRef<typeof TooltipPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <TooltipPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\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',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\r\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;"}
@@ -1,22 +1,14 @@
1
- import l from "./index.es23.js";
1
+ import m from "./index.es44.js";
2
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
- };
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
+ )));
19
11
  export {
20
- g as default
12
+ s as default
21
13
  };
22
14
  //# sourceMappingURL=index.es33.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es33.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;"}
@@ -1,49 +1,88 @@
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
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.es29.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
16
19
  }) => {
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,
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",
19
33
  {
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
+ className: a("relative w-full max-w-2xl", b),
35
+ onMouseEnter: () => u(!0),
36
+ onMouseLeave: () => u(!1)
34
37
  },
35
- /* @__PURE__ */ e.createElement("div", null, n),
36
38
  /* @__PURE__ */ e.createElement(
37
- E,
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,
38
73
  {
39
- icon: "arrowRight",
40
- className: "mt-6"
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
41
80
  },
42
- "Подробнее"
81
+ /* @__PURE__ */ e.createElement(S, { className: "h-4 w-4 group-hover/submit:text-whitish" })
43
82
  )
44
- ) : /* @__PURE__ */ e.createElement("div", { className: l }, n);
83
+ );
45
84
  };
46
85
  export {
47
- A as default
86
+ B as default
48
87
  };
49
88
  //# sourceMappingURL=index.es34.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es34.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;"}
@@ -1,48 +1,22 @@
1
- import { Tag as b } from "./index.es17.js";
2
- import h from "./index.es6.js";
3
- import o from "./index.es23.js";
1
+ import l from "./index.es26.js";
4
2
  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",
3
+ import o from "./index.es17.js";
4
+ import n from "./index.es27.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,
23
10
  {
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
- }
11
+ src: r,
12
+ alt: `Изображение для ${t}`,
13
+ width: 32,
14
+ height: 32,
15
+ className: "object-contain"
34
16
  }
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 || "Подробнее")));
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 })));
44
18
  };
45
19
  export {
46
- _ as default
20
+ g as default
47
21
  };
48
22
  //# sourceMappingURL=index.es35.js.map
@@ -1 +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;"}
1
+ {"version":3,"file":"index.es35.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;"}