@iit/precision-ui 0.6.0 → 0.7.1

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 (135) hide show
  1. package/dist/components/ArticlePreviewTag.d.ts +11 -0
  2. package/dist/components/ArticlePreviewTag.d.ts.map +1 -0
  3. package/dist/components/cards/AdvantageWithAccordion.d.ts +12 -0
  4. package/dist/components/cards/AdvantageWithAccordion.d.ts.map +1 -0
  5. package/dist/components/cards/Connect.d.ts +19 -0
  6. package/dist/components/cards/Connect.d.ts.map +1 -0
  7. package/dist/components/cards/Doc.d.ts +11 -0
  8. package/dist/components/cards/Doc.d.ts.map +1 -0
  9. package/dist/components/cards/FAQ.d.ts +14 -0
  10. package/dist/components/cards/FAQ.d.ts.map +1 -0
  11. package/dist/components/cards/License.d.ts +10 -0
  12. package/dist/components/cards/License.d.ts.map +1 -0
  13. package/dist/components/cards/Package.d.ts +28 -0
  14. package/dist/components/cards/Package.d.ts.map +1 -0
  15. package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts +8 -0
  16. package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts.map +1 -0
  17. package/dist/components/ui/TagLink.d.ts +14 -0
  18. package/dist/components/ui/TagLink.d.ts.map +1 -0
  19. package/dist/components/ui/accordion.d.ts +15 -0
  20. package/dist/components/ui/accordion.d.ts.map +1 -0
  21. package/dist/components/ui/tabs.d.ts +8 -0
  22. package/dist/components/ui/tabs.d.ts.map +1 -0
  23. package/dist/icons/comet.svg +5 -0
  24. package/dist/index.d.ts +38 -11
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.es.js +112 -63
  27. package/dist/index.es.js.map +1 -1
  28. package/dist/index.es10.js +1 -1
  29. package/dist/index.es11.js +1 -1
  30. package/dist/index.es12.js +1 -1
  31. package/dist/index.es13.js +79 -24
  32. package/dist/index.es13.js.map +1 -1
  33. package/dist/index.es14.js +83 -26
  34. package/dist/index.es14.js.map +1 -1
  35. package/dist/index.es15.js +19 -19
  36. package/dist/index.es15.js.map +1 -1
  37. package/dist/index.es16.js +28 -25
  38. package/dist/index.es16.js.map +1 -1
  39. package/dist/index.es17.js +24 -69
  40. package/dist/index.es17.js.map +1 -1
  41. package/dist/index.es18.js +22 -32
  42. package/dist/index.es18.js.map +1 -1
  43. package/dist/index.es19.js +72 -31
  44. package/dist/index.es19.js.map +1 -1
  45. package/dist/index.es2.js +1 -1
  46. package/dist/index.es20.js +24 -19
  47. package/dist/index.es20.js.map +1 -1
  48. package/dist/index.es21.js +30 -26
  49. package/dist/index.es21.js.map +1 -1
  50. package/dist/index.es22.js +25 -205
  51. package/dist/index.es22.js.map +1 -1
  52. package/dist/index.es23.js +17 -50
  53. package/dist/index.es23.js.map +1 -1
  54. package/dist/index.es24.js +40 -52
  55. package/dist/index.es24.js.map +1 -1
  56. package/dist/index.es25.js +30 -54
  57. package/dist/index.es25.js.map +1 -1
  58. package/dist/index.es26.js +52 -18
  59. package/dist/index.es26.js.map +1 -1
  60. package/dist/index.es27.js +14 -19
  61. package/dist/index.es27.js.map +1 -1
  62. package/dist/index.es28.js +6 -91
  63. package/dist/index.es28.js.map +1 -1
  64. package/dist/index.es29.js +53 -90
  65. package/dist/index.es29.js.map +1 -1
  66. package/dist/index.es3.js +2 -2
  67. package/dist/index.es30.js +25 -31
  68. package/dist/index.es30.js.map +1 -1
  69. package/dist/index.es31.js +97 -6
  70. package/dist/index.es31.js.map +1 -1
  71. package/dist/index.es32.js +55 -21
  72. package/dist/index.es32.js.map +1 -1
  73. package/dist/index.es33.js +90 -18
  74. package/dist/index.es33.js.map +1 -1
  75. package/dist/index.es34.js +96 -18
  76. package/dist/index.es34.js.map +1 -1
  77. package/dist/index.es35.js +11 -9
  78. package/dist/index.es35.js.map +1 -1
  79. package/dist/index.es36.js +42 -82
  80. package/dist/index.es36.js.map +1 -1
  81. package/dist/index.es37.js +23 -18
  82. package/dist/index.es37.js.map +1 -1
  83. package/dist/index.es38.js +36 -43
  84. package/dist/index.es38.js.map +1 -1
  85. package/dist/index.es39.js +24 -49
  86. package/dist/index.es39.js.map +1 -1
  87. package/dist/index.es4.js +1 -1
  88. package/dist/index.es40.js +205 -34
  89. package/dist/index.es40.js.map +1 -1
  90. package/dist/index.es41.js +46 -50
  91. package/dist/index.es41.js.map +1 -1
  92. package/dist/index.es42.js +47 -81
  93. package/dist/index.es42.js.map +1 -1
  94. package/dist/index.es43.js +60 -97
  95. package/dist/index.es43.js.map +1 -1
  96. package/dist/index.es44.js +19 -26
  97. package/dist/index.es44.js.map +1 -1
  98. package/dist/index.es45.js +17 -45
  99. package/dist/index.es45.js.map +1 -1
  100. package/dist/index.es46.js +75 -226
  101. package/dist/index.es46.js.map +1 -1
  102. package/dist/index.es47.js +90 -16
  103. package/dist/index.es47.js.map +1 -1
  104. package/dist/index.es48.js +33 -4
  105. package/dist/index.es48.js.map +1 -1
  106. package/dist/index.es49.js +80 -0
  107. package/dist/index.es49.js.map +1 -0
  108. package/dist/index.es5.js +1 -1
  109. package/dist/index.es50.js +46 -0
  110. package/dist/index.es50.js.map +1 -0
  111. package/dist/index.es51.js +14 -0
  112. package/dist/index.es51.js.map +1 -0
  113. package/dist/index.es52.js +9 -0
  114. package/dist/index.es52.js.map +1 -0
  115. package/dist/index.es53.js +25 -0
  116. package/dist/index.es53.js.map +1 -0
  117. package/dist/index.es54.js +23 -0
  118. package/dist/index.es54.js.map +1 -0
  119. package/dist/index.es55.js +23 -0
  120. package/dist/index.es55.js.map +1 -0
  121. package/dist/index.es56.js +50 -0
  122. package/dist/index.es56.js.map +1 -0
  123. package/dist/index.es57.js +30 -0
  124. package/dist/index.es57.js.map +1 -0
  125. package/dist/index.es58.js +19 -0
  126. package/dist/index.es58.js.map +1 -0
  127. package/dist/index.es59.js +245 -0
  128. package/dist/index.es59.js.map +1 -0
  129. package/dist/index.es6.js +1 -1
  130. package/dist/index.es60.js +7 -0
  131. package/dist/index.es60.js.map +1 -0
  132. package/dist/index.es7.js +1 -1
  133. package/dist/index.es8.js +1 -1
  134. package/dist/styles.css +206 -0
  135. package/package.json +5 -3
@@ -1,31 +1,86 @@
1
- import * as e from "react";
2
- import { cva as i } from "class-variance-authority";
3
- import { cn as n } from "./index.es31.js";
4
- const s = i(
5
- "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
6
- {
7
- variants: {
8
- variant: {
9
- default: "bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32",
10
- blue: "bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32"
11
- }
1
+ import e, { useState as v, useRef as b, useEffect as w } from "react";
2
+ import { Button as o } from "./index.es2.js";
3
+ import { Close16X16 as h } from "@iit/precision-ui-icons";
4
+ import { Input as d } from "./index.es11.js";
5
+ import { SearchIcon as g } from "lucide-react";
6
+ const x = ({
7
+ id: s,
8
+ placeholder: u,
9
+ className: c,
10
+ value: l = "",
11
+ onChange: t,
12
+ variant: y = "default",
13
+ ...p
14
+ }) => {
15
+ const [a, n] = v(l), r = b(null);
16
+ w(() => {
17
+ n(l);
18
+ }, [l]);
19
+ const i = (f) => {
20
+ n(f.target.value), t && t(f);
21
+ }, m = () => {
22
+ n(""), r.current && r.current.focus(), t && t({
23
+ target: { value: "" }
24
+ });
25
+ };
26
+ return y === "white" ? /* @__PURE__ */ e.createElement("div", { className: "relative w-full max-w-md" }, /* @__PURE__ */ e.createElement(
27
+ o,
28
+ {
29
+ type: "button",
30
+ variant: "ghost",
31
+ size: "icon",
32
+ className: "absolute right-2 top-1/2 -translate-y-1/2 h-10 w-10 text-muted-foreground bg-navy-opacity-8 p-3 rounded-full"
12
33
  },
13
- defaultVariants: {
14
- variant: "default"
34
+ /* @__PURE__ */ e.createElement(g, { className: "" })
35
+ ), /* @__PURE__ */ e.createElement(
36
+ d,
37
+ {
38
+ ref: r,
39
+ id: s,
40
+ placeholder: u,
41
+ className: `w-full pl-4 pr-16 ${c} bg-whitish rounded-full border-b-transparent h-14`,
42
+ value: a,
43
+ onChange: i,
44
+ ...p
15
45
  }
16
- }
17
- ), c = e.forwardRef(
18
- ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e.createElement(
19
- "textarea",
46
+ ), /* @__PURE__ */ e.createElement(
47
+ o,
48
+ {
49
+ type: "button",
50
+ variant: "ghost",
51
+ size: "icon",
52
+ className: "absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground bg-navy-opacity-8 p-0 hover:bg-navy group",
53
+ onClick: m,
54
+ style: { display: a ? "block" : "none" }
55
+ },
56
+ /* @__PURE__ */ e.createElement(h, { className: "h-[10px] w-[10px] left-[5px] top-0 relative group-hover:text-whitish" }),
57
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Очистить")
58
+ )) : /* @__PURE__ */ e.createElement("div", { className: "relative w-full max-w-md" }, /* @__PURE__ */ e.createElement(g, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground" }), /* @__PURE__ */ e.createElement(
59
+ d,
20
60
  {
21
- className: n(s({ variant: a, className: t })),
22
- ref: o,
23
- ...r
61
+ ref: r,
62
+ id: s,
63
+ placeholder: u,
64
+ className: `w-full pl-10 pr-10 ${c}`,
65
+ value: a,
66
+ onChange: i,
67
+ ...p
24
68
  }
25
- )
26
- );
27
- c.displayName = "Textarea";
69
+ ), /* @__PURE__ */ e.createElement(
70
+ o,
71
+ {
72
+ type: "button",
73
+ variant: "ghost",
74
+ size: "icon",
75
+ className: "absolute right-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground bg-navy-opacity-8 p-0 hover:bg-navy group",
76
+ onClick: m,
77
+ style: { display: a ? "block" : "none" }
78
+ },
79
+ /* @__PURE__ */ e.createElement(h, { className: "h-[10px] w-[10px] left-[5px] top-0 relative group-hover:text-whitish" }),
80
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Очистить")
81
+ ));
82
+ }, S = x;
28
83
  export {
29
- c as Textarea
84
+ S as default
30
85
  };
31
86
  //# sourceMappingURL=index.es13.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es13.js","sources":["../src/components/ui/textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react'\r\n\r\nimport { VariantProps, cva } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst textareaVariants = cva(\r\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32',\r\n blue: 'bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nexport interface TextareaProps\r\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\r\n VariantProps<typeof textareaVariants> {\r\n // className?: string\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, variant, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(textareaVariants({ variant, className }))}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nTextarea.displayName = 'Textarea'\r\n\r\nexport { Textarea }\r\n"],"names":["textareaVariants","cva","Textarea","React","className","variant","props","ref","cn"],"mappings":";;;AAMA,MAAMA,IAAmBC;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAQMC,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAE/B,gBAAAJ,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWK,EAAGR,EAAiB,EAAE,SAAAK,GAAS,WAAAD,EAAW,CAAA,CAAC;AAAA,MACtD,KAAAG;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAIZ;AACAJ,EAAS,cAAc;"}
1
+ {"version":3,"file":"index.es13.js","sources":["../src/components/ui/input/SearchInput.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\n\r\ninterface SearchInputProps {\r\n id?: string\r\n placeholder?: string\r\n className?: string\r\n value?: string\r\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\r\n variant?: 'default' | 'white'\r\n}\r\n\r\nconst SearchInput: React.FC<SearchInputProps> = ({\r\n id,\r\n placeholder,\r\n className,\r\n value = '',\r\n onChange,\r\n variant = 'default',\r\n ...props\r\n}) => {\r\n const [inputValue, setInputValue] = useState(value)\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 }\r\n\r\n if (variant === 'white') {\r\n return (\r\n <div className=\"relative w-full max-w-md\">\r\n {/* TODO: replace with icon from icon lib */}\r\n {/* <div className=\"bg-navy-opacity-16 p-1 rounded-full\">\r\n <SearchIcon className=\"absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground\" />\r\n </div> */}\r\n\r\n {/* <SearchIcon className=\"absolute right-3 top-1/2 -translate-y-1/2 h-10 w-10 text-muted-foreground bg-navy-opacity-8 p-3 rounded-full\" /> */}\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"absolute right-2 top-1/2 -translate-y-1/2 h-10 w-10 text-muted-foreground bg-navy-opacity-8 p-3 rounded-full\"\r\n >\r\n <SearchIcon className=\"\" />\r\n </Button>\r\n <Input\r\n ref={inputRef}\r\n id={id}\r\n placeholder={placeholder}\r\n className={`w-full pl-4 pr-16 ${className} bg-whitish rounded-full border-b-transparent h-14`}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n {...props}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground bg-navy-opacity-8 p-0 hover:bg-navy group\"\r\n onClick={handleClearClick}\r\n style={{ display: inputValue ? 'block' : 'none' }}\r\n >\r\n {/* <XIcon className=\"h-4 w-4 left-[2px] top-0 relative group-hover:text-whitish\" /> */}\r\n <Close16X16 className=\"h-[10px] w-[10px] left-[5px] top-0 relative group-hover:text-whitish\" />\r\n <span className=\"sr-only\">Очистить</span>\r\n </Button>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"relative w-full max-w-md\">\r\n {/* TODO: replace with icon from icon lib */}\r\n <SearchIcon className=\"absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground\" />\r\n <Input\r\n ref={inputRef}\r\n id={id}\r\n placeholder={placeholder}\r\n className={`w-full pl-10 pr-10 ${className}`}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n {...props}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"absolute right-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground bg-navy-opacity-8 p-0 hover:bg-navy group\"\r\n onClick={handleClearClick}\r\n style={{ display: inputValue ? 'block' : 'none' }}\r\n >\r\n {/* <XIcon className=\"h-4 w-4 left-[2px] top-0 relative group-hover:text-whitish\" /> */}\r\n <Close16X16 className=\"h-[10px] w-[10px] left-[5px] top-0 relative group-hover:text-whitish\" />\r\n <span className=\"sr-only\">Очистить</span>\r\n </Button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SearchInput\r\n"],"names":["SearchInput","id","placeholder","className","value","onChange","variant","props","inputValue","setInputValue","useState","inputRef","useRef","useEffect","handleInputChange","event","handleClearClick","React","Button","SearchIcon","Input","Close16X16","SearchInput$1"],"mappings":";;;;;AAgBA,MAAMA,IAA0C,CAAC;AAAA,EAC/C,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,MAAM;AACJ,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAASN,CAAK,GAC5CO,IAAWC,EAAyB,IAAI;AAE9C,EAAAC,EAAU,MAAM;AACd,IAAAJ,EAAcL,CAAK;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEJ,QAAAU,IAAoB,CAACC,MAA+C;AAC1D,IAAAN,EAAAM,EAAM,OAAO,KAAK,GAC5BV,KACFA,EAASU,CAAK;AAAA,EAChB,GAGIC,IAAmB,MAAM;AAC7B,IAAAP,EAAc,EAAE,GACZE,EAAS,WACXA,EAAS,QAAQ,SAEfN,KACOA,EAAA;AAAA,MACP,QAAQ,EAAE,OAAO,GAAG;AAAA,IAAA,CACkB;AAAA,EAC1C;AAGF,SAAIC,MAAY,UAEZW,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,2BAOb,GAAAA,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,IAAA;AAAA,IAEVD,gBAAAA,EAAA,cAACE,GAAW,EAAA,WAAU,GAAG,CAAA;AAAA,EAE3B,GAAAF,gBAAAA,EAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,KAAKT;AAAA,MACL,IAAAV;AAAA,MACA,aAAAC;AAAA,MACA,WAAW,qBAAqBC,CAAS;AAAA,MACzC,OAAOK;AAAA,MACP,UAAUM;AAAA,MACT,GAAGP;AAAA,IAAA;AAAA,EAEN,GAAAU,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,MACV,SAASF;AAAA,MACT,OAAO,EAAE,SAASR,IAAa,UAAU,OAAO;AAAA,IAAA;AAAA,IAGhDS,gBAAAA,EAAA,cAACI,GAAW,EAAA,WAAU,uEAAuE,CAAA;AAAA,IAC5FJ,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,UAAQ;AAAA,EAAA,CAEtC,IAKFA,gBAAAA,EAAA,cAAC,SAAI,WAAU,2BAAA,mCAEZE,GAAW,EAAA,WAAU,0EAAyE,GAC/FF,gBAAAA,EAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,KAAKT;AAAA,MACL,IAAAV;AAAA,MACA,aAAAC;AAAA,MACA,WAAW,sBAAsBC,CAAS;AAAA,MAC1C,OAAOK;AAAA,MACP,UAAUM;AAAA,MACT,GAAGP;AAAA,IAAA;AAAA,EAEN,GAAAU,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,MACV,SAASF;AAAA,MACT,OAAO,EAAE,SAASR,IAAa,UAAU,OAAO;AAAA,IAAA;AAAA,IAGhDS,gBAAAA,EAAA,cAACI,GAAW,EAAA,WAAU,uEAAuE,CAAA;AAAA,IAC5FJ,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,UAAQ;AAAA,EAAA,CAEtC;AAEJ,GAEAK,IAAetB;"}
@@ -1,31 +1,88 @@
1
- import { Label as i } from "./index.es15.js";
2
- import { Textarea as n } from "./index.es13.js";
3
- import { useId as m } from "react";
4
- function p({
5
- id: r,
6
- variant: e = "default",
7
- label: t,
8
- className: c
9
- }) {
10
- const s = m(), a = r || s, o = e === "default" ? "group-focus-within:text-navy-opacity-40" : "group-focus-within:text-whitish-opacity-60";
11
- return /* @__PURE__ */ React.createElement("div", { className: `grid w-full items-center gap-1 group ${c}` }, t && /* @__PURE__ */ React.createElement(
12
- i,
1
+ import e, { useState as p, useRef as I, useEffect as N } from "react";
2
+ import { Button as m } from "./index.es2.js";
3
+ import { Close16X16 as S } from "@iit/precision-ui-icons";
4
+ import { Input as k } from "./index.es11.js";
5
+ import { SearchIcon as R } from "lucide-react";
6
+ import { cn as a } from "./index.es52.js";
7
+ const B = ({
8
+ id: h,
9
+ placeholder: f,
10
+ className: v,
11
+ containerClassName: b,
12
+ value: r = "",
13
+ onChange: t,
14
+ onKeyDown: d,
15
+ onClickSubmitButton: g,
16
+ onClickClearButton: l,
17
+ withoutBottomBorder: y,
18
+ ...w
19
+ }) => {
20
+ const [o, s] = p(r), [i, u] = p(!1), n = I(null);
21
+ N(() => {
22
+ s(r);
23
+ }, [r]);
24
+ const x = (c) => {
25
+ s(c.target.value), t && t(c);
26
+ }, E = () => {
27
+ s(""), n.current && n.current.focus(), t && t({
28
+ target: { value: "" }
29
+ }), l && l();
30
+ };
31
+ return /* @__PURE__ */ e.createElement(
32
+ "div",
13
33
  {
14
- variant: e,
15
- htmlFor: a,
16
- className: o
34
+ className: a("relative w-full max-w-2xl", b),
35
+ onMouseEnter: () => u(!0),
36
+ onMouseLeave: () => u(!1)
17
37
  },
18
- t
19
- ), /* @__PURE__ */ React.createElement(
20
- n,
21
- {
22
- id: a,
23
- variant: e,
24
- className: `focus:outline-none '${o}'`
25
- }
26
- ));
27
- }
38
+ /* @__PURE__ */ e.createElement(
39
+ k,
40
+ {
41
+ ref: n,
42
+ id: h,
43
+ placeholder: f,
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(S, { 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(R, { className: "h-4 w-4 group-hover/submit:text-whitish" })
82
+ )
83
+ );
84
+ }, z = B;
28
85
  export {
29
- p as TextareaWithLabel
86
+ z as default
30
87
  };
31
88
  //# sourceMappingURL=index.es14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es14.js","sources":["../src/components/ui/textarea/TextareaWithLabel.tsx"],"sourcesContent":["import { InputVariant } from '../input/types'\r\nimport { Label } from '../label'\r\nimport { Textarea } from './Textarea'\r\nimport { useId } from 'react'\r\n\r\ninterface TextareaWithLabelProps {\r\n variant?: InputVariant\r\n label?: string\r\n id?: string\r\n className?: string\r\n}\r\n\r\nexport function TextareaWithLabel({\r\n id,\r\n variant = 'default',\r\n label,\r\n className,\r\n}: TextareaWithLabelProps) {\r\n const generatedId = useId()\r\n const textareaId = id || generatedId\r\n\r\n const textareaClasses =\r\n variant === 'default'\r\n ? 'group-focus-within:text-navy-opacity-40'\r\n : 'group-focus-within:text-whitish-opacity-60'\r\n\r\n return (\r\n <div className={`grid w-full items-center gap-1 group ${className}`}>\r\n {label && (\r\n <Label\r\n variant={variant}\r\n htmlFor={textareaId}\r\n className={textareaClasses}\r\n >\r\n {label}\r\n </Label>\r\n )}\r\n\r\n <Textarea\r\n id={textareaId}\r\n variant={variant}\r\n className={`focus:outline-none '${textareaClasses}'`}\r\n />\r\n\r\n {/* {desc && <p className=\"text-sm text-muted-foreground\">{desc}</p>} */}\r\n </div>\r\n )\r\n}\r\n"],"names":["TextareaWithLabel","id","variant","label","className","generatedId","useId","textareaId","textareaClasses","Label","Textarea"],"mappings":";;;AAYO,SAASA,EAAkB;AAAA,EAChC,IAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,WAAAC;AACF,GAA2B;AACzB,QAAMC,IAAcC,KACdC,IAAaN,KAAMI,GAEnBG,IACJN,MAAY,YACR,4CACA;AAEN,6CACG,OAAI,EAAA,WAAW,wCAAwCE,CAAS,MAC9DD,KACC,sBAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,SAAAP;AAAA,MACA,SAASK;AAAA,MACT,WAAWC;AAAA,IAAA;AAAA,IAEVL;AAAA,EAIL,GAAA,sBAAA;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,IAAIH;AAAA,MACJ,SAAAL;AAAA,MACA,WAAW,uBAAuBM,CAAe;AAAA,IAAA;AAAA,EAAA,CAIrD;AAEJ;"}
1
+ {"version":3,"file":"index.es14.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","SearchInputWithButton$1"],"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,GAEAC,IAAe7B;"}
@@ -1,31 +1,31 @@
1
- import * as a from "react";
2
- import * as t from "@radix-ui/react-label";
3
- import { cva as l } from "class-variance-authority";
4
- import { cn as n } from "./index.es31.js";
5
- const s = l(
6
- "typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200",
1
+ import * as e from "react";
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as n } from "./index.es52.js";
4
+ const s = i(
5
+ "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
7
6
  {
8
7
  variants: {
9
8
  variant: {
10
- default: "text-navy",
11
- blue: "text-whitish"
9
+ default: "bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32",
10
+ blue: "bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32"
12
11
  }
13
12
  },
14
13
  defaultVariants: {
15
14
  variant: "default"
16
15
  }
17
16
  }
18
- ), d = a.forwardRef(({ className: e, variant: r, ...o }, i) => /* @__PURE__ */ a.createElement(
19
- t.Root,
20
- {
21
- ref: i,
22
- className: n(s({ variant: r }), e),
23
- ...o
24
- }
25
- ));
26
- d.displayName = t.Root.displayName;
17
+ ), c = e.forwardRef(
18
+ ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e.createElement(
19
+ "textarea",
20
+ {
21
+ className: n(s({ variant: a, className: t })),
22
+ ref: o,
23
+ ...r
24
+ }
25
+ )
26
+ );
27
+ c.displayName = "Textarea";
27
28
  export {
28
- d as Label,
29
- s as labelVariants
29
+ c as Textarea
30
30
  };
31
31
  //# sourceMappingURL=index.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es15.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as LabelPrimitive from '@radix-ui/react-label'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nexport const labelVariants = cva(\r\n 'typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'text-navy',\r\n blue: 'text-whitish',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\r\n VariantProps<typeof labelVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <LabelPrimitive.Root\r\n ref={ref}\r\n className={cn(labelVariants({ variant }), className)}\r\n {...props}\r\n />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n"],"names":["labelVariants","cva","Label","React","className","variant","props","ref","LabelPrimitive","cn"],"mappings":";;;;AAMO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAEMC,IAAQC,EAAM,WAIlB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAM,GAAGC,MACnC,gBAAAJ,EAAA;AAAA,EAACK,EAAe;AAAA,EAAf;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAGT,EAAc,EAAE,SAAAK,EAAS,CAAA,GAAGD,CAAS;AAAA,IAClD,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAM,cAAcM,EAAe,KAAK;"}
1
+ {"version":3,"file":"index.es15.js","sources":["../src/components/ui/textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react'\r\n\r\nimport { VariantProps, cva } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst textareaVariants = cva(\r\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32',\r\n blue: 'bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nexport interface TextareaProps\r\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\r\n VariantProps<typeof textareaVariants> {\r\n // className?: string\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, variant, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(textareaVariants({ variant, className }))}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nTextarea.displayName = 'Textarea'\r\n\r\nexport { Textarea }\r\n"],"names":["textareaVariants","cva","Textarea","React","className","variant","props","ref","cn"],"mappings":";;;AAMA,MAAMA,IAAmBC;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAQMC,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAE/B,gBAAAJ,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWK,EAAGR,EAAiB,EAAE,SAAAK,GAAS,WAAAD,EAAW,CAAA,CAAC;AAAA,MACtD,KAAAG;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAIZ;AACAJ,EAAS,cAAc;"}
@@ -1,28 +1,31 @@
1
- import { Popover as n, PopoverTrigger as a, PopoverContent as l } from "./index.es33.js";
2
- import { TooltipProvider as m, Tooltip as i, TooltipTrigger as c, TooltipContent as s } from "./index.es34.js";
3
- import { Button as r } from "./index.es2.js";
4
- import { Info as o } from "lucide-react";
5
- import e from "react";
6
- const p = ({ content: t }) => /* @__PURE__ */ e.createElement(m, { delayDuration: 0 }, /* @__PURE__ */ e.createElement("div", { className: "hidden xl:block" }, /* @__PURE__ */ e.createElement(i, null, /* @__PURE__ */ e.createElement(c, { asChild: !0 }, /* @__PURE__ */ e.createElement(
7
- r,
8
- {
9
- variant: "ghost",
10
- size: "icon",
11
- className: "rounded-full group/informer h-8 w-8"
12
- },
13
- /* @__PURE__ */ e.createElement(o, { className: "w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors" }),
14
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Warning")
15
- )), /* @__PURE__ */ e.createElement(s, null, /* @__PURE__ */ e.createElement("div", null, t)))), /* @__PURE__ */ e.createElement("div", { className: "block xl:hidden" }, /* @__PURE__ */ e.createElement(n, null, /* @__PURE__ */ e.createElement(a, { asChild: !0 }, /* @__PURE__ */ e.createElement(
16
- r,
17
- {
18
- variant: "ghost",
19
- size: "icon",
20
- className: "rounded-full group/informer h-8 w-8"
21
- },
22
- /* @__PURE__ */ e.createElement(o, { className: "w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors" }),
23
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Warning")
24
- )), /* @__PURE__ */ e.createElement(l, { className: "px-3 py-1.5" }, /* @__PURE__ */ e.createElement("div", null, t))))), g = p;
1
+ import { Label as i } from "./index.es17.js";
2
+ import { Textarea as n } from "./index.es15.js";
3
+ import { useId as m } from "react";
4
+ function p({
5
+ id: r,
6
+ variant: e = "default",
7
+ label: t,
8
+ className: c
9
+ }) {
10
+ const s = m(), a = r || s, o = e === "default" ? "group-focus-within:text-navy-opacity-40" : "group-focus-within:text-whitish-opacity-60";
11
+ return /* @__PURE__ */ React.createElement("div", { className: `grid w-full items-center gap-1 group ${c}` }, t && /* @__PURE__ */ React.createElement(
12
+ i,
13
+ {
14
+ variant: e,
15
+ htmlFor: a,
16
+ className: o
17
+ },
18
+ t
19
+ ), /* @__PURE__ */ React.createElement(
20
+ n,
21
+ {
22
+ id: a,
23
+ variant: e,
24
+ className: `focus:outline-none '${o}'`
25
+ }
26
+ ));
27
+ }
25
28
  export {
26
- g as default
29
+ p as TextareaWithLabel
27
30
  };
28
31
  //# sourceMappingURL=index.es16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es16.js","sources":["../src/components/Informer.tsx"],"sourcesContent":["import {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from '@/components/ui/popover'\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from '@/components/ui/tooltip'\r\n\r\nimport { Button } from '@/components/ui/button'\r\nimport { Info } from 'lucide-react'\r\nimport React from 'react'\r\n\r\ninterface InformerProps {\r\n content: string\r\n}\r\n\r\nconst Informer = ({ content }: InformerProps) => {\r\n return (\r\n <TooltipProvider delayDuration={0}>\r\n <div className=\"hidden xl:block\">\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"rounded-full group/informer h-8 w-8\"\r\n >\r\n <Info className=\"w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors\" />\r\n <span className=\"sr-only\">Warning</span>\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n <div>{content}</div>\r\n </TooltipContent>\r\n </Tooltip>\r\n </div>\r\n <div className=\"block xl:hidden\">\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"rounded-full group/informer h-8 w-8\"\r\n >\r\n <Info className=\"w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors\" />\r\n <span className=\"sr-only\">Warning</span>\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"px-3 py-1.5\">\r\n <div>{content}</div>\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nexport default Informer\r\n"],"names":["Informer","content","React","TooltipProvider","Tooltip","TooltipTrigger","Button","Info","TooltipContent","Popover","PopoverTrigger","PopoverContent","Informer$1"],"mappings":";;;;;AAoBA,MAAMA,IAAW,CAAC,EAAE,SAAAC,QAEfC,gBAAAA,EAAA,cAAAC,GAAA,EAAgB,eAAe,EAAA,GAC7BD,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,qBACZA,gBAAAA,EAAA,cAAAE,GAAA,MACEF,gBAAAA,EAAA,cAAAG,GAAA,EAAe,SAAO,GACrB,GAAAH,gBAAAA,EAAA;AAAA,EAACI;AAAA,EAAA;AAAA,IACC,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,EAAA;AAAA,EAEVJ,gBAAAA,EAAA,cAACK,GAAK,EAAA,WAAU,gFAAgF,CAAA;AAAA,EAC/FL,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,SAAO;AAErC,CAAA,GACCA,gBAAAA,EAAA,cAAAM,GAAA,sCACE,OAAK,MAAAP,CAAQ,CAChB,CACF,CACF,GACCC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,kBACb,GAAAA,gBAAAA,EAAA,cAACO,SACEP,gBAAAA,EAAA,cAAAQ,GAAA,EAAe,SAAO,GACrB,GAAAR,gBAAAA,EAAA;AAAA,EAACI;AAAA,EAAA;AAAA,IACC,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,EAAA;AAAA,EAEVJ,gBAAAA,EAAA,cAACK,GAAK,EAAA,WAAU,gFAAgF,CAAA;AAAA,EAC/FL,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,SAAO;AAAA,CAErC,GACCA,gBAAAA,EAAA,cAAAS,GAAA,EAAe,WAAU,cAAA,GACvBT,gBAAAA,EAAA,cAAA,OAAA,MAAKD,CAAQ,CAChB,CACF,CACF,CACF,GAIJW,IAAeZ;"}
1
+ {"version":3,"file":"index.es16.js","sources":["../src/components/ui/textarea/TextareaWithLabel.tsx"],"sourcesContent":["import { InputVariant } from '../input/types'\r\nimport { Label } from '../label'\r\nimport { Textarea } from './Textarea'\r\nimport { useId } from 'react'\r\n\r\ninterface TextareaWithLabelProps {\r\n variant?: InputVariant\r\n label?: string\r\n id?: string\r\n className?: string\r\n}\r\n\r\nexport function TextareaWithLabel({\r\n id,\r\n variant = 'default',\r\n label,\r\n className,\r\n}: TextareaWithLabelProps) {\r\n const generatedId = useId()\r\n const textareaId = id || generatedId\r\n\r\n const textareaClasses =\r\n variant === 'default'\r\n ? 'group-focus-within:text-navy-opacity-40'\r\n : 'group-focus-within:text-whitish-opacity-60'\r\n\r\n return (\r\n <div className={`grid w-full items-center gap-1 group ${className}`}>\r\n {label && (\r\n <Label\r\n variant={variant}\r\n htmlFor={textareaId}\r\n className={textareaClasses}\r\n >\r\n {label}\r\n </Label>\r\n )}\r\n\r\n <Textarea\r\n id={textareaId}\r\n variant={variant}\r\n className={`focus:outline-none '${textareaClasses}'`}\r\n />\r\n\r\n {/* {desc && <p className=\"text-sm text-muted-foreground\">{desc}</p>} */}\r\n </div>\r\n )\r\n}\r\n"],"names":["TextareaWithLabel","id","variant","label","className","generatedId","useId","textareaId","textareaClasses","Label","Textarea"],"mappings":";;;AAYO,SAASA,EAAkB;AAAA,EAChC,IAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,WAAAC;AACF,GAA2B;AACzB,QAAMC,IAAcC,KACdC,IAAaN,KAAMI,GAEnBG,IACJN,MAAY,YACR,4CACA;AAEN,6CACG,OAAI,EAAA,WAAW,wCAAwCE,CAAS,MAC9DD,KACC,sBAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,SAAAP;AAAA,MACA,SAASK;AAAA,MACT,WAAWC;AAAA,IAAA;AAAA,IAEVL;AAAA,EAIL,GAAA,sBAAA;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,IAAIH;AAAA,MACJ,SAAAL;AAAA,MACA,WAAW,uBAAuBM,CAAe;AAAA,IAAA;AAAA,EAAA,CAIrD;AAEJ;"}
@@ -1,76 +1,31 @@
1
- import u from "react";
2
- const h = (t) => {
3
- const a = /* @__PURE__ */ new Set(["br", "img", "input", "hr", "meta", "link"]), i = /<\/?([a-z]+)(\s[^>]*)?>/gi, r = [];
4
- let l;
5
- for (; (l = i.exec(t)) !== null; ) {
6
- const s = l[0], e = l[1].toLowerCase();
7
- if (s === "</br>")
8
- return !1;
9
- if (s.startsWith("</")) {
10
- if (a.has(e) || r.length === 0 || r.pop() !== e)
11
- return !1;
12
- } else
13
- !a.has(e) && !s.endsWith("/>") && r.push(e);
14
- }
15
- return r.length === 0;
16
- }, m = (t) => {
17
- const a = /<[a-z]+\s+([^>]+)>/gi, i = t.matchAll(a);
18
- for (const [s, e] of i) {
19
- const o = e.match(/\w+\s*=\s*(['"])(.*?)\1|\w+(?!=)/g) || [];
20
- for (const n of o)
21
- if (n.includes("=")) {
22
- const [g, ...f] = n.split("="), c = f.join("=");
23
- if (!(c.startsWith('"') && c.endsWith('"') || c.startsWith("'") && c.endsWith("'")))
24
- return !1;
25
- const d = c[0];
26
- if (c.slice(1, -1).includes(d))
27
- return !1;
28
- }
29
- }
30
- const r = /<[^>]*?['"][^'"]*>/g, l = t.match(r) || [];
31
- for (const s of l) {
32
- let e = !1, o = "";
33
- for (let n = 0; n < s.length; n++)
34
- (s[n] === "'" || s[n] === '"') && (e ? s[n] === o && (e = !1) : (e = !0, o = s[n]));
35
- if (e)
36
- return !1;
37
- }
38
- return !0;
39
- }, v = (t) => {
40
- const a = [...t.matchAll(/<([a-z]+)(\s[^>]*)\/>/gi)];
41
- for (const [i, r, l] of a) {
42
- const s = /(\w+)=["']([^"']*)["']/g, e = [...l.matchAll(s)];
43
- for (const [g, f, c] of e)
44
- if (!f || !c)
45
- return !1;
46
- const o = /(\w+)=["'][^"']*$/g;
47
- if ([...l.matchAll(o)].length > 0)
48
- return !1;
49
- }
50
- return !0;
51
- }, p = (t) => {
52
- const a = /style=["']([^"']*)["']/gi, i = [...t.matchAll(a)];
53
- for (const [r, l] of i) {
54
- const s = l.split(";");
55
- for (const e of s)
56
- if (e.trim()) {
57
- const [o, n] = e.split(":");
58
- if (!o || !n)
59
- return !1;
1
+ import * as a from "react";
2
+ import * as t from "@radix-ui/react-label";
3
+ import { cva as l } from "class-variance-authority";
4
+ import { cn as n } from "./index.es52.js";
5
+ const s = l(
6
+ "typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: "text-navy",
11
+ blue: "text-whitish"
60
12
  }
13
+ },
14
+ defaultVariants: {
15
+ variant: "default"
16
+ }
61
17
  }
62
- return !0;
63
- }, T = (t) => h(t) && m(t) && v(t) && p(t), y = ({
64
- html: t,
65
- className: a
66
- }) => T(t) ? /* @__PURE__ */ u.createElement(
67
- "div",
18
+ ), d = a.forwardRef(({ className: e, variant: r, ...o }, i) => /* @__PURE__ */ a.createElement(
19
+ t.Root,
68
20
  {
69
- className: ["content", a].filter(Boolean).join(" "),
70
- dangerouslySetInnerHTML: { __html: t }
21
+ ref: i,
22
+ className: n(s({ variant: r }), e),
23
+ ...o
71
24
  }
72
- ) : (console.error("Invalid HTML content:", t), /* @__PURE__ */ u.createElement("div", { style: { color: "red" } }, "Invalid HTML content")), R = y;
25
+ ));
26
+ d.displayName = t.Root.displayName;
73
27
  export {
74
- R as default
28
+ d as Label,
29
+ s as labelVariants
75
30
  };
76
31
  //# sourceMappingURL=index.es17.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es17.js","sources":["../src/components/SafeHtml.tsx"],"sourcesContent":["import React from 'react'\r\n\r\n// Check if tags are correctly opened and closed\r\nconst validateTags = (htmlString: string) => {\r\n // List of known self-closing tags\r\n const selfClosingTags = new Set(['br', 'img', 'input', 'hr', 'meta', 'link'])\r\n\r\n const tagPattern = /<\\/?([a-z]+)(\\s[^>]*)?>/gi\r\n const tagStack: string[] = []\r\n let match\r\n\r\n while ((match = tagPattern.exec(htmlString)) !== null) {\r\n const fullTag = match[0]\r\n const tagName = match[1].toLowerCase()\r\n\r\n // Check for incorrect </br> usage\r\n if (fullTag === '</br>') {\r\n return false // </br> is invalid HTML\r\n }\r\n\r\n if (fullTag.startsWith('</')) {\r\n // Closing tag\r\n if (selfClosingTags.has(tagName)) {\r\n return false // Self-closing tags shouldn't have closing tags\r\n }\r\n if (tagStack.length === 0) return false\r\n const lastTag = tagStack.pop()\r\n if (lastTag !== tagName) return false\r\n } else {\r\n // Opening tag\r\n if (!selfClosingTags.has(tagName) && !fullTag.endsWith('/>')) {\r\n tagStack.push(tagName)\r\n }\r\n }\r\n }\r\n\r\n return tagStack.length === 0\r\n}\r\n\r\nconst validateAttributes = (htmlString: string) => {\r\n const attributeRegex = /<[a-z]+\\s+([^>]+)>/gi\r\n const matches = htmlString.matchAll(attributeRegex)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [fullMatch, attributes] of matches) {\r\n // Split attributes by space, but keep quoted values together\r\n const attrs = attributes.match(/\\w+\\s*=\\s*(['\"])(.*?)\\1|\\w+(?!=)/g) || []\r\n\r\n for (const attr of attrs) {\r\n // Check if attribute has quotes\r\n if (attr.includes('=')) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const [name, ...rest] = attr.split('=')\r\n const value = rest.join('=') // Rejoin in case value contains =\r\n\r\n // Check for proper quote matching\r\n if (\r\n !(\r\n (value.startsWith('\"') && value.endsWith('\"')) ||\r\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\r\n )\r\n ) {\r\n return false\r\n }\r\n\r\n // Extract the quote character used\r\n const quoteChar = value[0]\r\n // Check if there are any unescaped quotes of the same type inside the value\r\n const valueContent = value.slice(1, -1)\r\n if (valueContent.includes(quoteChar)) {\r\n return false\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Additional check for unclosed quotes before >\r\n const unclosedQuoteCheck = /<[^>]*?['\"][^'\"]*>/g\r\n const potentiallyUnclosedTags = htmlString.match(unclosedQuoteCheck) || []\r\n for (const tag of potentiallyUnclosedTags) {\r\n let inQuote = false\r\n let quoteChar = ''\r\n for (let i = 0; i < tag.length; i++) {\r\n if (tag[i] === \"'\" || tag[i] === '\"') {\r\n if (!inQuote) {\r\n inQuote = true\r\n quoteChar = tag[i]\r\n } else if (tag[i] === quoteChar) {\r\n inQuote = false\r\n }\r\n }\r\n }\r\n if (inQuote) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\n// Check if self-closing tags are valid\r\nconst validateSelfClosingTags = (htmlString: string) => {\r\n const selfClosingTags = [...htmlString.matchAll(/<([a-z]+)(\\s[^>]*)\\/>/gi)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, tag, attributes] of selfClosingTags) {\r\n const attrRegex = /(\\w+)=[\"']([^\"']*)[\"']/g\r\n const attrs = [...attributes.matchAll(attrRegex)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, attrName, attrValue] of attrs) {\r\n if (!attrName || !attrValue) {\r\n return false // Invalid attribute format\r\n }\r\n }\r\n\r\n // Check for unclosed attributes\r\n const unclosedAttrRegex = /(\\w+)=[\"'][^\"']*$/g\r\n const unclosedAttrs = [...attributes.matchAll(unclosedAttrRegex)]\r\n\r\n if (unclosedAttrs.length > 0) {\r\n return false // Unclosed attribute in self-closing tag\r\n }\r\n }\r\n\r\n return true // Self-closing tags are valid\r\n}\r\n\r\n// Check for inline styles and ensure they follow a valid format\r\nconst validateInlineStyles = (htmlString: string) => {\r\n const styleRegex = /style=[\"']([^\"']*)[\"']/gi\r\n const styles = [...htmlString.matchAll(styleRegex)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, styleContent] of styles) {\r\n // A basic check for properly formatted style declarations (e.g., \"property: value;\")\r\n const styleRules = styleContent.split(';')\r\n for (const rule of styleRules) {\r\n if (rule.trim()) {\r\n const [property, value] = rule.split(':')\r\n if (!property || !value) {\r\n return false // Invalid style declaration\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true // Inline styles are valid\r\n}\r\n\r\n// Main function that calls the smaller subfunctions\r\nconst validateHtmlBasic = (htmlString: string) => {\r\n return (\r\n validateTags(htmlString) &&\r\n validateAttributes(htmlString) &&\r\n validateSelfClosingTags(htmlString) &&\r\n validateInlineStyles(htmlString)\r\n )\r\n}\r\n\r\n////\r\n\r\nconst SafeHtmlRenderer = ({\r\n html,\r\n className,\r\n}: {\r\n html: string\r\n className?: string\r\n}) => {\r\n const isValid = validateHtmlBasic(html)\r\n // console.log(\"isValidHTML\", isValid);\r\n // TODO: add send error to TG\r\n\r\n if (!isValid) {\r\n console.error('Invalid HTML content:', html)\r\n return <div style={{ color: 'red' }}>Invalid HTML content</div>\r\n }\r\n\r\n return (\r\n <div\r\n className={['content', className].filter(Boolean).join(' ')}\r\n dangerouslySetInnerHTML={{ __html: html }}\r\n />\r\n )\r\n}\r\n\r\nexport default SafeHtmlRenderer\r\n"],"names":["validateTags","htmlString","selfClosingTags","tagPattern","tagStack","match","fullTag","tagName","validateAttributes","attributeRegex","matches","fullMatch","attributes","attrs","attr","name","rest","value","quoteChar","unclosedQuoteCheck","potentiallyUnclosedTags","tag","inQuote","i","validateSelfClosingTags","_","attrRegex","attrName","attrValue","unclosedAttrRegex","validateInlineStyles","styleRegex","styles","styleContent","styleRules","rule","property","validateHtmlBasic","SafeHtmlRenderer","html","className","React","SafeHtmlRenderer$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.es17.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as LabelPrimitive from '@radix-ui/react-label'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nexport const labelVariants = cva(\r\n 'typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'text-navy',\r\n blue: 'text-whitish',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\r\n VariantProps<typeof labelVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <LabelPrimitive.Root\r\n ref={ref}\r\n className={cn(labelVariants({ variant }), className)}\r\n {...props}\r\n />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n"],"names":["labelVariants","cva","Label","React","className","variant","props","ref","LabelPrimitive","cn"],"mappings":";;;;AAMO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAEMC,IAAQC,EAAM,WAIlB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAM,GAAGC,MACnC,gBAAAJ,EAAA;AAAA,EAACK,EAAe;AAAA,EAAf;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAGT,EAAc,EAAE,SAAAK,EAAS,CAAA,GAAGD,CAAS;AAAA,IAClD,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAM,cAAcM,EAAe,KAAK;"}