@iit/precision-ui 0.3.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 (94) hide show
  1. package/dist/components/core/typography/Heading.d.ts +1 -0
  2. package/dist/components/core/typography/Heading.d.ts.map +1 -1
  3. package/dist/components/ui/form.d.ts +24 -0
  4. package/dist/components/ui/form.d.ts.map +1 -0
  5. package/dist/components/ui/textarea/Textarea.d.ts +10 -0
  6. package/dist/components/ui/textarea/Textarea.d.ts.map +1 -0
  7. package/dist/components/ui/textarea/TextareaWithLabel.d.ts +11 -0
  8. package/dist/components/ui/textarea/TextareaWithLabel.d.ts.map +1 -0
  9. package/dist/components/ui/textarea/index.d.ts +5 -0
  10. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.es.js +55 -41
  14. package/dist/index.es.js.map +1 -1
  15. package/dist/index.es10.js +1 -1
  16. package/dist/index.es11.js +1 -1
  17. package/dist/index.es12.js +1 -1
  18. package/dist/index.es13.js +27 -24
  19. package/dist/index.es13.js.map +1 -1
  20. package/dist/index.es14.js +28 -73
  21. package/dist/index.es14.js.map +1 -1
  22. package/dist/index.es15.js +15 -23
  23. package/dist/index.es15.js.map +1 -1
  24. package/dist/index.es16.js +24 -31
  25. package/dist/index.es16.js.map +1 -1
  26. package/dist/index.es17.js +71 -28
  27. package/dist/index.es17.js.map +1 -1
  28. package/dist/index.es18.js +33 -26
  29. package/dist/index.es18.js.map +1 -1
  30. package/dist/index.es19.js +25 -176
  31. package/dist/index.es19.js.map +1 -1
  32. package/dist/index.es2.js +1 -1
  33. package/dist/index.es20.js +29 -51
  34. package/dist/index.es20.js.map +1 -1
  35. package/dist/index.es21.js +25 -54
  36. package/dist/index.es21.js.map +1 -1
  37. package/dist/index.es22.js +178 -54
  38. package/dist/index.es22.js.map +1 -1
  39. package/dist/index.es23.js +50 -17
  40. package/dist/index.es23.js.map +1 -1
  41. package/dist/index.es24.js +56 -18
  42. package/dist/index.es24.js.map +1 -1
  43. package/dist/index.es25.js +59 -6
  44. package/dist/index.es25.js.map +1 -1
  45. package/dist/index.es26.js +19 -21
  46. package/dist/index.es26.js.map +1 -1
  47. package/dist/index.es27.js +18 -26
  48. package/dist/index.es27.js.map +1 -1
  49. package/dist/index.es28.js +87 -19
  50. package/dist/index.es28.js.map +1 -1
  51. package/dist/index.es29.js +6 -20
  52. package/dist/index.es29.js.map +1 -1
  53. package/dist/index.es3.js +2 -2
  54. package/dist/index.es30.js +22 -11
  55. package/dist/index.es30.js.map +1 -1
  56. package/dist/index.es31.js +19 -84
  57. package/dist/index.es31.js.map +1 -1
  58. package/dist/index.es32.js +20 -19
  59. package/dist/index.es32.js.map +1 -1
  60. package/dist/index.es33.js +11 -46
  61. package/dist/index.es33.js.map +1 -1
  62. package/dist/index.es34.js +81 -41
  63. package/dist/index.es34.js.map +1 -1
  64. package/dist/index.es35.js +15 -33
  65. package/dist/index.es35.js.map +1 -1
  66. package/dist/index.es36.js +38 -48
  67. package/dist/index.es36.js.map +1 -1
  68. package/dist/index.es37.js +37 -84
  69. package/dist/index.es37.js.map +1 -1
  70. package/dist/index.es38.js +35 -96
  71. package/dist/index.es38.js.map +1 -1
  72. package/dist/index.es39.js +50 -21
  73. package/dist/index.es39.js.map +1 -1
  74. package/dist/index.es4.js +1 -1
  75. package/dist/index.es40.js +83 -36
  76. package/dist/index.es40.js.map +1 -1
  77. package/dist/index.es41.js +87 -211
  78. package/dist/index.es41.js.map +1 -1
  79. package/dist/index.es42.js +27 -16
  80. package/dist/index.es42.js.map +1 -1
  81. package/dist/index.es43.js +45 -4
  82. package/dist/index.es43.js.map +1 -1
  83. package/dist/index.es44.js +19 -0
  84. package/dist/index.es44.js.map +1 -0
  85. package/dist/index.es45.js +225 -0
  86. package/dist/index.es45.js.map +1 -0
  87. package/dist/index.es46.js +7 -0
  88. package/dist/index.es46.js.map +1 -0
  89. package/dist/index.es5.js +1 -1
  90. package/dist/index.es6.js +1 -1
  91. package/dist/index.es7.js +1 -1
  92. package/dist/index.es8.js +1 -1
  93. package/dist/styles.css +3 -0
  94. package/package.json +18 -4
@@ -1,22 +1,60 @@
1
- import c, { forwardRef as f } from "react";
2
- import { typeVariants as d } from "./index.es39.js";
3
- const e = f(
4
- ({ variant: a = "body", as: o, className: t = "", children: r, ...n }, s) => {
5
- const m = o || "p", p = d({ variant: a });
6
- return /* @__PURE__ */ c.createElement(
7
- m,
8
- {
9
- ref: s,
10
- className: `${p}${t ? ` ${t}` : ""}`,
11
- ...n
12
- },
13
- r
14
- );
1
+ import e from "react";
2
+ import { cva as u } from "class-variance-authority";
3
+ import { cn as y } from "./index.es29.js";
4
+ import v from "./index.es26.js";
5
+ import E from "./index.es27.js";
6
+ import N from "./index.es4.js";
7
+ const b = u("space-y-12", {
8
+ variants: {
9
+ variant: {
10
+ default: "py-[120px]",
11
+ muted: "bg-grey-2 py-[88px] px-6"
12
+ },
13
+ corners: {
14
+ default: "rounded-2xl",
15
+ onlyTop: "rounded-t-2xl",
16
+ onlyBottom: "rounded-b-2xl"
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ variant: "default",
21
+ corners: "default"
15
22
  }
16
- );
17
- e.displayName = "Text";
18
- const x = e;
23
+ }), g = ({
24
+ title: t,
25
+ desc: a,
26
+ children: n,
27
+ moreLink: r,
28
+ moreText: l = "Подробнее",
29
+ withTopMargin: o = !1,
30
+ withBottomMargin: s = !1,
31
+ withoutTopPadding: c = !1,
32
+ withoutBottomPadding: m = !1,
33
+ variant: i,
34
+ corners: f,
35
+ className: p
36
+ }) => {
37
+ const d = [
38
+ "container",
39
+ o && "mt-6",
40
+ s && "mb-6"
41
+ ].filter(Boolean).map((x) => x).join(" ").trim();
42
+ return /* @__PURE__ */ e.createElement("section", { className: d }, /* @__PURE__ */ e.createElement(
43
+ "div",
44
+ {
45
+ className: y(
46
+ b({ variant: i, corners: f }),
47
+ c && "pt-0",
48
+ m && "pb-0",
49
+ p
50
+ )
51
+ },
52
+ t && /* @__PURE__ */ e.createElement("div", { className: "space-y-4 flex flex-col items-center" }, /* @__PURE__ */ e.createElement(v, { level: 2, className: "text-center max-w-[900px]" }, t), a && /* @__PURE__ */ e.createElement(E, { className: "text-center max-w-6xl" }, a)),
53
+ n,
54
+ r && /* @__PURE__ */ e.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ e.createElement(N, { href: r }, l))
55
+ ));
56
+ }, _ = g;
19
57
  export {
20
- x as default
58
+ _ as default
21
59
  };
22
60
  //# sourceMappingURL=index.es24.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es24.js","sources":["../src/components/core/typography/Text.tsx"],"sourcesContent":["import React, { ElementType, ReactNode, forwardRef } from \"react\";\r\n\r\nimport { typeVariants } from \"./typeVariants\";\r\n\r\ninterface TextProps {\r\n variant?:\r\n | \"factoid\"\r\n | \"subtitle-1\"\r\n | \"subtitle-2\"\r\n | \"overline\"\r\n | \"lead-text\"\r\n | \"body\"\r\n | \"small-body\"\r\n | \"caption\"\r\n | \"button\"\r\n | \"link\";\r\n as?: ElementType;\r\n className?: string;\r\n children: ReactNode;\r\n}\r\n\r\nconst Text = forwardRef<HTMLParagraphElement, TextProps>(\r\n ({ variant = \"body\", as, className = \"\", children, ...props }, ref) => {\r\n const Component = as || \"p\";\r\n const variantClass = typeVariants({ variant });\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={`${variantClass}${className ? ` ${className}` : \"\"}`}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nText.displayName = \"Text\";\r\n\r\nexport default Text;\r\n"],"names":["Text","forwardRef","variant","as","className","children","props","ref","Component","variantClass","typeVariants","React","Text$1"],"mappings":";;AAqBA,MAAMA,IAAOC;AAAA,EACX,CAAC,EAAE,SAAAC,IAAU,QAAQ,IAAAC,GAAI,WAAAC,IAAY,IAAI,UAAAC,GAAU,GAAGC,EAAM,GAAGC,MAAQ;AACrE,UAAMC,IAAYL,KAAM,KAClBM,IAAeC,EAAa,EAAE,SAAAR,EAAS,CAAA;AAG3C,WAAAS,gBAAAA,EAAA;AAAA,MAACH;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,WAAW,GAAGE,CAAY,GAAGL,IAAY,IAAIA,CAAS,KAAK,EAAE;AAAA,QAC5D,GAAGE;AAAA,MAAA;AAAA,MAEHD;AAAA,IAAA;AAAA,EAGP;AACF;AAEAL,EAAK,cAAc;AAEnB,MAAAY,IAAeZ;"}
1
+ {"version":3,"file":"index.es24.js","sources":["../src/sections/Section.tsx"],"sourcesContent":["import React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport Heading from '@/components/core/typography/Heading'\r\nimport Text from '@/components/core/typography/Text'\r\nimport ButtonPrimary from '@/components/ui/button/ButtonPrimary'\r\n\r\nconst sectionVariants = cva('space-y-12', {\r\n variants: {\r\n variant: {\r\n default: 'py-[120px]',\r\n muted: 'bg-grey-2 py-[88px] px-6',\r\n },\r\n corners: {\r\n default: 'rounded-2xl',\r\n onlyTop: 'rounded-t-2xl',\r\n onlyBottom: 'rounded-b-2xl',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n corners: 'default',\r\n },\r\n})\r\n\r\nexport interface SectionProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof sectionVariants> {\r\n title: string\r\n desc?: string\r\n children?: React.ReactNode\r\n moreLink?: string\r\n moreText?: string\r\n withTopMargin?: boolean\r\n withBottomMargin?: boolean\r\n withoutTopPadding?: boolean\r\n withoutBottomPadding?: boolean\r\n className?: string\r\n}\r\n\r\nconst Section: React.FC<SectionProps> = ({\r\n title,\r\n desc,\r\n children,\r\n moreLink,\r\n moreText = 'Подробнее',\r\n withTopMargin = false,\r\n withBottomMargin = false,\r\n withoutTopPadding = false,\r\n withoutBottomPadding = false,\r\n variant,\r\n corners,\r\n className,\r\n}) => {\r\n const sectionClasses = [\r\n 'container',\r\n withTopMargin && 'mt-6',\r\n withBottomMargin && 'mb-6',\r\n ]\r\n .filter(Boolean)\r\n .map((item) => item)\r\n .join(' ')\r\n .trim()\r\n\r\n return (\r\n <section className={sectionClasses}>\r\n <div\r\n className={cn(\r\n sectionVariants({ variant, corners }),\r\n withoutTopPadding && 'pt-0',\r\n withoutBottomPadding && 'pb-0',\r\n className\r\n )}\r\n >\r\n {title && (\r\n <div className=\"space-y-4 flex flex-col items-center\">\r\n <Heading level={2} className=\"text-center max-w-[900px]\">\r\n {title}\r\n </Heading>\r\n {desc && <Text className=\"text-center max-w-6xl\">{desc}</Text>}\r\n </div>\r\n )}\r\n {children}\r\n {moreLink && (\r\n <div className=\"flex justify-center\">\r\n <ButtonPrimary href={moreLink}>{moreText}</ButtonPrimary>\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n )\r\n}\r\n\r\nexport default Section\r\n"],"names":["sectionVariants","cva","Section","title","desc","children","moreLink","moreText","withTopMargin","withBottomMargin","withoutTopPadding","withoutBottomPadding","variant","corners","className","sectionClasses","item","React","cn","Heading","Text","ButtonPrimary","Section$1"],"mappings":";;;;;;AAOA,MAAMA,IAAkBC,EAAI,cAAc;AAAA,EACxC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AACF,CAAC,GAiBKC,IAAkC,CAAC;AAAA,EACvC,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,eAAAC,IAAgB;AAAA,EAChB,kBAAAC,IAAmB;AAAA,EACnB,mBAAAC,IAAoB;AAAA,EACpB,sBAAAC,IAAuB;AAAA,EACvB,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAMC,IAAiB;AAAA,IACrB;AAAA,IACAP,KAAiB;AAAA,IACjBC,KAAoB;AAAA,EAEnB,EAAA,OAAO,OAAO,EACd,IAAI,CAACO,MAASA,CAAI,EAClB,KAAK,GAAG,EACR,KAAK;AAGN,SAAAC,gBAAAA,EAAA,cAAC,WAAQ,EAAA,WAAWF,EAClB,GAAAE,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTlB,EAAgB,EAAE,SAAAY,GAAS,SAAAC,GAAS;AAAA,QACpCH,KAAqB;AAAA,QACrBC,KAAwB;AAAA,QACxBG;AAAA,MACF;AAAA,IAAA;AAAA,IAECX,KACEc,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,uCACb,GAAAA,gBAAAA,EAAA,cAACE,KAAQ,OAAO,GAAG,WAAU,4BAC1B,GAAAhB,CACH,GACCC,KAAQa,gBAAAA,EAAA,cAACG,KAAK,WAAU,wBAAA,GAAyBhB,CAAK,CACzD;AAAA,IAEDC;AAAA,IACAC,KACEW,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,sBAAA,mCACZI,GAAc,EAAA,MAAMf,EAAW,GAAAC,CAAS,CAC3C;AAAA,EAAA,CAGN;AAEJ,GAEAe,IAAepB;"}
@@ -1,9 +1,62 @@
1
- import { clsx as o } from "clsx";
2
- import { twMerge as t } from "tailwind-merge";
3
- function n(...r) {
4
- return t(o(r));
5
- }
1
+ import A from "./index.es24.js";
2
+ import e from "./index.es35.js";
3
+ import E from "./index.es36.js";
4
+ import G from "./index.es37.js";
5
+ import R from "./index.es38.js";
6
+ import S from "./index.es39.js";
7
+ import I from "./index.es40.js";
8
+ import _ from "./index.es41.js";
9
+ import t from "react";
10
+ const k = {
11
+ Advantage: e,
12
+ Advantage2: E,
13
+ Rate: _,
14
+ Product: I,
15
+ FeaturedCard: G,
16
+ Plate: S
17
+ }, x = ({
18
+ title: r,
19
+ desc: o,
20
+ items: a,
21
+ component: m = "Advantage",
22
+ withoutTopPadding: n = !1,
23
+ withTopMargin: d = !1,
24
+ withBottomMargin: f = !1,
25
+ withoutBottomPadding: i = !1,
26
+ variant: c,
27
+ corners: p,
28
+ columns: l,
29
+ showControlsOnDesktop: s,
30
+ withoutCarousel: C,
31
+ footnote: u
32
+ }) => {
33
+ const P = k[m] || e;
34
+ return /* @__PURE__ */ t.createElement(
35
+ A,
36
+ {
37
+ title: r,
38
+ desc: o,
39
+ variant: c,
40
+ corners: p,
41
+ withoutTopPadding: n,
42
+ withTopMargin: d,
43
+ withBottomMargin: f,
44
+ withoutBottomPadding: i
45
+ },
46
+ /* @__PURE__ */ t.createElement(
47
+ R,
48
+ {
49
+ items: a,
50
+ columns: l,
51
+ showControlsOnDesktop: s,
52
+ withoutCarousel: C,
53
+ renderItem: (g, v) => /* @__PURE__ */ t.createElement(P, { key: v, ...g }),
54
+ footnote: u
55
+ }
56
+ )
57
+ );
58
+ }, z = x;
6
59
  export {
7
- n as cn
60
+ z as default
8
61
  };
9
62
  //# sourceMappingURL=index.es25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es25.js","sources":["../src/lib/utils/cn.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAGO,SAASA,KAAMC,GAAsB;AACnC,SAAAC,EAAQC,EAAKF,CAAM,CAAC;AAC7B;"}
1
+ {"version":3,"file":"index.es25.js","sources":["../src/sections/CardsGridSection.tsx"],"sourcesContent":["import Section, { SectionProps } from './Section'\r\n\r\nimport Advantage from '@/components/cards/Advantage'\r\nimport Advantage2 from '@/components/cards/Advantage2'\r\nimport FeaturedCard from '@/components/cards/FeaturedCard'\r\nimport GridIterator from '@/components/GridIterator'\r\nimport Plate from '@/components/cards/Plate'\r\nimport Product from '@/components/cards/Product'\r\nimport Rate from '@/components/cards/Rate'\r\nimport React from 'react'\r\n\r\n// Map component names to actual components\r\nconst componentMap: { [key: string]: React.ElementType } = {\r\n Advantage,\r\n Advantage2,\r\n Rate,\r\n Product,\r\n FeaturedCard,\r\n Plate,\r\n}\r\n\r\ninterface CardsGridSectionProps<T> {\r\n title: string\r\n desc?: string\r\n items: T[]\r\n component?: string\r\n withoutTopPadding?: boolean\r\n withoutBottomPadding?: boolean\r\n withTopMargin?: boolean\r\n withBottomMargin?: boolean\r\n variant?: SectionProps['variant']\r\n corners?: SectionProps['corners']\r\n columns?: number\r\n showControlsOnDesktop?: boolean\r\n withoutCarousel?: boolean\r\n footnote?: string\r\n}\r\n\r\nconst CardsGridSection = <T,>({\r\n title,\r\n desc,\r\n items,\r\n component = 'Advantage',\r\n withoutTopPadding = false,\r\n withTopMargin = false,\r\n withBottomMargin = false,\r\n withoutBottomPadding = false,\r\n variant,\r\n corners,\r\n columns,\r\n showControlsOnDesktop,\r\n withoutCarousel,\r\n footnote,\r\n}: CardsGridSectionProps<T>) => {\r\n const Component = componentMap[component] || Advantage\r\n\r\n return (\r\n <Section\r\n title={title}\r\n desc={desc}\r\n variant={variant}\r\n corners={corners}\r\n withoutTopPadding={withoutTopPadding}\r\n withTopMargin={withTopMargin}\r\n withBottomMargin={withBottomMargin}\r\n withoutBottomPadding={withoutBottomPadding}\r\n >\r\n <GridIterator\r\n items={items}\r\n columns={columns}\r\n showControlsOnDesktop={showControlsOnDesktop}\r\n withoutCarousel={withoutCarousel}\r\n renderItem={(item, index) => <Component key={index} {...item} />}\r\n footnote={footnote}\r\n />\r\n </Section>\r\n )\r\n}\r\n\r\nexport default CardsGridSection\r\n"],"names":["componentMap","Advantage","Advantage2","Rate","Product","FeaturedCard","Plate","CardsGridSection","title","desc","items","component","withoutTopPadding","withTopMargin","withBottomMargin","withoutBottomPadding","variant","corners","columns","showControlsOnDesktop","withoutCarousel","footnote","Component","React","Section","GridIterator","item","index","CardsGridSection$1"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAqD;AAAA,EACzD,WAAAC;AAAA,EACA,YAAAC;AAAA,EAAA,MACAC;AAAAA,EAAA,SACAC;AAAAA,EACA,cAAAC;AAAA,EAAA,OACAC;AACF,GAmBMC,IAAmB,CAAK;AAAA,EAC5B,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,mBAAAC,IAAoB;AAAA,EACpB,eAAAC,IAAgB;AAAA,EAChB,kBAAAC,IAAmB;AAAA,EACnB,sBAAAC,IAAuB;AAAA,EACvB,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAgC;AACxB,QAAAC,IAAYtB,EAAaW,CAAS,KAAKV;AAG3C,SAAAsB,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAhB;AAAA,MACA,MAAAC;AAAA,MACA,SAAAO;AAAA,MACA,SAAAC;AAAA,MACA,mBAAAL;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,sBAAAC;AAAA,IAAA;AAAA,IAEAQ,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,SAAAQ;AAAA,QACA,uBAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,YAAY,CAACM,GAAMC,sCAAWL,GAAU,EAAA,KAAKK,GAAQ,GAAGD,EAAM,CAAA;AAAA,QAC9D,UAAAL;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAEAO,IAAerB;"}
@@ -1,25 +1,23 @@
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 });
1
+ import c, { forwardRef as f } from "react";
2
+ import { typeVariants as p } from "./index.es42.js";
3
+ const e = f(
4
+ ({ level: a, as: n, className: t = "", children: r, id: o, ...i }, s) => {
5
+ const d = n || `h${a}`, m = p({ variant: `h${a}` });
6
+ return /* @__PURE__ */ c.createElement(
7
+ d,
8
+ {
9
+ ref: s,
10
+ id: o,
11
+ className: `${m}${t ? ` ${t}` : ""}`,
12
+ ...i
13
+ },
14
+ r
15
+ );
19
16
  }
20
- return /* @__PURE__ */ o.createElement(o.Fragment, null);
21
- };
17
+ );
18
+ e.displayName = "Heading";
19
+ const l = e;
22
20
  export {
23
- I as iconDefiner
21
+ l as default
24
22
  };
25
23
  //# sourceMappingURL=index.es26.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es26.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
+ {"version":3,"file":"index.es26.js","sources":["../src/components/core/typography/Heading.tsx"],"sourcesContent":["import React, { ElementType, ReactNode, forwardRef } from \"react\";\r\n\r\nimport { typeVariants } from \"./typeVariants\";\r\n\r\ninterface HeadingProps {\r\n level: 1 | 2 | 3 | 4 | 5 | 6;\r\n as?: ElementType;\r\n className?: string;\r\n children: ReactNode;\r\n id?: string;\r\n}\r\n\r\nconst Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\r\n ({ level, as, className = \"\", children, id, ...props }, ref) => {\r\n const Component = as || `h${level}`;\r\n const variantClass = typeVariants({ variant: `h${level}` });\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n id={id}\r\n className={`${variantClass}${className ? ` ${className}` : \"\"}`}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nHeading.displayName = \"Heading\";\r\n\r\nexport default Heading;\r\n"],"names":["Heading","forwardRef","level","as","className","children","id","props","ref","Component","variantClass","typeVariants","React","Heading$1"],"mappings":";;AAYA,MAAMA,IAAUC;AAAA,EACd,CAAC,EAAE,OAAAC,GAAO,IAAAC,GAAI,WAAAC,IAAY,IAAI,UAAAC,GAAU,IAAAC,GAAI,GAAGC,EAAM,GAAGC,MAAQ;AACxD,UAAAC,IAAYN,KAAM,IAAID,CAAK,IAC3BQ,IAAeC,EAAa,EAAE,SAAS,IAAIT,CAAK,IAAI;AAGxD,WAAAU,gBAAAA,EAAA;AAAA,MAACH;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,IAAAF;AAAA,QACA,WAAW,GAAGI,CAAY,GAAGN,IAAY,IAAIA,CAAS,KAAK,EAAE;AAAA,QAC5D,GAAGG;AAAA,MAAA;AAAA,MAEHF;AAAA,IAAA;AAAA,EAGP;AACF;AAEAL,EAAQ,cAAc;AAEtB,MAAAa,IAAeb;"}
@@ -1,30 +1,22 @@
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.es25.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"
12
- }
13
- },
14
- defaultVariants: {
15
- variant: "default"
16
- }
1
+ import c, { forwardRef as f } from "react";
2
+ import { typeVariants as d } from "./index.es42.js";
3
+ const e = f(
4
+ ({ variant: a = "body", as: o, className: t = "", children: r, ...n }, s) => {
5
+ const m = o || "p", p = d({ variant: a });
6
+ return /* @__PURE__ */ c.createElement(
7
+ m,
8
+ {
9
+ ref: s,
10
+ className: `${p}${t ? ` ${t}` : ""}`,
11
+ ...n
12
+ },
13
+ r
14
+ );
17
15
  }
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;
16
+ );
17
+ e.displayName = "Text";
18
+ const x = e;
27
19
  export {
28
- d as Label
20
+ x as default
29
21
  };
30
22
  //# sourceMappingURL=index.es27.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es27.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\nconst 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":";;;;AAMA,MAAMA,IAAgBC;AAAA,EACpB;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.es27.js","sources":["../src/components/core/typography/Text.tsx"],"sourcesContent":["import React, { ElementType, ReactNode, forwardRef } from \"react\";\r\n\r\nimport { typeVariants } from \"./typeVariants\";\r\n\r\ninterface TextProps {\r\n variant?:\r\n | \"factoid\"\r\n | \"subtitle-1\"\r\n | \"subtitle-2\"\r\n | \"overline\"\r\n | \"lead-text\"\r\n | \"body\"\r\n | \"small-body\"\r\n | \"caption\"\r\n | \"button\"\r\n | \"link\";\r\n as?: ElementType;\r\n className?: string;\r\n children: ReactNode;\r\n}\r\n\r\nconst Text = forwardRef<HTMLParagraphElement, TextProps>(\r\n ({ variant = \"body\", as, className = \"\", children, ...props }, ref) => {\r\n const Component = as || \"p\";\r\n const variantClass = typeVariants({ variant });\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={`${variantClass}${className ? ` ${className}` : \"\"}`}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n }\r\n);\r\n\r\nText.displayName = \"Text\";\r\n\r\nexport default Text;\r\n"],"names":["Text","forwardRef","variant","as","className","children","props","ref","Component","variantClass","typeVariants","React","Text$1"],"mappings":";;AAqBA,MAAMA,IAAOC;AAAA,EACX,CAAC,EAAE,SAAAC,IAAU,QAAQ,IAAAC,GAAI,WAAAC,IAAY,IAAI,UAAAC,GAAU,GAAGC,EAAM,GAAGC,MAAQ;AACrE,UAAMC,IAAYL,KAAM,KAClBM,IAAeC,EAAa,EAAE,SAAAR,EAAS,CAAA;AAG3C,WAAAS,gBAAAA,EAAA;AAAA,MAACH;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,WAAW,GAAGE,CAAY,GAAGL,IAAY,IAAIA,CAAS,KAAK,EAAE;AAAA,QAC5D,GAAGE;AAAA,MAAA;AAAA,MAEHD;AAAA,IAAA;AAAA,EAGP;AACF;AAEAL,EAAK,cAAc;AAEnB,MAAAY,IAAeZ;"}
@@ -1,23 +1,91 @@
1
- import * as t from "@radix-ui/react-popover";
2
1
  import * as e from "react";
3
- import { cn as i } from "./index.es25.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,
6
- {
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
- }
16
- )));
17
- s.displayName = t.Content.displayName;
2
+ import { FormProvider as f, useFormContext as l } from "react-hook-form";
3
+ import { Label as F } from "./index.es15.js";
4
+ import { Slot as u } from "@radix-ui/react-slot";
5
+ import { cn as a } from "./index.es29.js";
6
+ const E = f, p = e.createContext(
7
+ {}
8
+ ), i = () => {
9
+ const t = e.useContext(p), o = e.useContext(c), { getFieldState: r, formState: m } = l(), s = r(t.name, m);
10
+ if (!t)
11
+ throw new Error("useFormField should be used within <FormField>");
12
+ const { id: n } = o;
13
+ return {
14
+ id: n,
15
+ name: t.name,
16
+ formItemId: `${n}-form-item`,
17
+ formDescriptionId: `${n}-form-item-description`,
18
+ formMessageId: `${n}-form-item-message`,
19
+ ...s
20
+ };
21
+ }, c = e.createContext(
22
+ {}
23
+ ), I = e.forwardRef(({ className: t, ...o }, r) => {
24
+ const m = e.useId();
25
+ return /* @__PURE__ */ e.createElement(c.Provider, { value: { id: m } }, /* @__PURE__ */ e.createElement("div", { ref: r, className: a("space-y-2", t), ...o }));
26
+ });
27
+ I.displayName = "FormItem";
28
+ const x = e.forwardRef(({ className: t, ...o }, r) => {
29
+ const { error: m, formItemId: s } = i();
30
+ return /* @__PURE__ */ e.createElement(
31
+ F,
32
+ {
33
+ ref: r,
34
+ className: a(m && "text-destructive", t),
35
+ htmlFor: s,
36
+ ...o
37
+ }
38
+ );
39
+ });
40
+ x.displayName = "FormLabel";
41
+ const C = e.forwardRef(({ ...t }, o) => {
42
+ const { error: r, formItemId: m, formDescriptionId: s, formMessageId: n } = i();
43
+ return /* @__PURE__ */ e.createElement(
44
+ u,
45
+ {
46
+ ref: o,
47
+ id: m,
48
+ "aria-describedby": r ? `${s} ${n}` : `${s}`,
49
+ "aria-invalid": !!r,
50
+ ...t
51
+ }
52
+ );
53
+ });
54
+ C.displayName = "FormControl";
55
+ const g = e.forwardRef(({ className: t, ...o }, r) => {
56
+ const { formDescriptionId: m } = i();
57
+ return /* @__PURE__ */ e.createElement(
58
+ "p",
59
+ {
60
+ ref: r,
61
+ id: m,
62
+ className: a("text-sm text-muted-foreground", t),
63
+ ...o
64
+ }
65
+ );
66
+ });
67
+ g.displayName = "FormDescription";
68
+ const N = e.forwardRef(({ className: t, children: o, ...r }, m) => {
69
+ const { error: s, formMessageId: n } = i(), d = s ? String(s?.message) : o;
70
+ return d ? /* @__PURE__ */ e.createElement(
71
+ "p",
72
+ {
73
+ ref: m,
74
+ id: n,
75
+ className: a("text-sm font-medium text-destructive", t),
76
+ ...r
77
+ },
78
+ d
79
+ ) : null;
80
+ });
81
+ N.displayName = "FormMessage";
18
82
  export {
19
- p as Popover,
20
- s as PopoverContent,
21
- l as PopoverTrigger
83
+ E as Form,
84
+ C as FormControl,
85
+ g as FormDescription,
86
+ I as FormItem,
87
+ x as FormLabel,
88
+ N as FormMessage,
89
+ i as useFormField
22
90
  };
23
91
  //# sourceMappingURL=index.es28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es28.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
+ {"version":3,"file":"index.es28.js","sources":["../src/components/ui/form.tsx"],"sourcesContent":["import * as LabelPrimitive from '@radix-ui/react-label'\nimport * as React from 'react'\n\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from 'react-hook-form'\n\nimport { Label } from '@/components/ui/label'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cn } from '@/lib/utils/cn'\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>')\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn('space-y-2', className)} {...props} />\n </FormItemContext.Provider>\n )\n})\nFormItem.displayName = 'FormItem'\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && 'text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = 'FormLabel'\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = 'FormControl'\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = 'FormDescription'\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn('text-sm font-medium text-destructive', className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = 'FormMessage'\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n"],"names":["Form","FormProvider","FormFieldContext","React","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","id","FormItem","className","props","ref","cn","FormLabel","error","formItemId","Label","FormControl","formDescriptionId","formMessageId","Slot","FormDescription","FormMessage","children","body"],"mappings":"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"}
@@ -1,23 +1,9 @@
1
- import * as t from "react";
2
- import * as o from "@radix-ui/react-tooltip";
3
- import { cn as r } from "./index.es25.js";
4
- const n = o.Provider, l = o.Root, p = o.Trigger, s = t.forwardRef(({ className: e, sideOffset: i = 4, ...a }, d) => /* @__PURE__ */ t.createElement(
5
- o.Content,
6
- {
7
- ref: d,
8
- sideOffset: i,
9
- className: r(
10
- "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
11
- e
12
- ),
13
- ...a
14
- }
15
- ));
16
- s.displayName = o.Content.displayName;
1
+ import { clsx as o } from "clsx";
2
+ import { twMerge as t } from "tailwind-merge";
3
+ function n(...r) {
4
+ return t(o(r));
5
+ }
17
6
  export {
18
- l as Tooltip,
19
- s as TooltipContent,
20
- n as TooltipProvider,
21
- p as TooltipTrigger
7
+ n as cn
22
8
  };
23
9
  //# sourceMappingURL=index.es29.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es29.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
+ {"version":3,"file":"index.es29.js","sources":["../src/lib/utils/cn.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAGO,SAASA,KAAMC,GAAsB;AACnC,SAAAC,EAAQC,EAAKF,CAAM,CAAC;AAC7B;"}
package/dist/index.es3.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import e, { Fragment as c } from "react";
2
2
  import { Button as h } from "./index.es2.js";
3
3
  import { cva as l } from "class-variance-authority";
4
- import { cn as u } from "./index.es25.js";
5
- import { iconDefiner as d } from "./index.es26.js";
4
+ import { cn as u } from "./index.es29.js";
5
+ import { iconDefiner as d } from "./index.es30.js";
6
6
  const m = l(
7
7
  "rounded-lg p-[10px] transition-all hover:rounded-[24px]",
8
8
  {
@@ -1,14 +1,25 @@
1
- import m from "./index.es42.js";
2
- import e from "react";
3
- const s = ({ list: t }) => /* @__PURE__ */ e.createElement("ul", { className: "breadcrumbs space-y-2" }, t.map((a, r) => /* @__PURE__ */ e.createElement(
4
- "li",
5
- {
6
- key: r,
7
- style: { "--counter": r + 1 }
8
- },
9
- /* @__PURE__ */ e.createElement(m, { ...a })
10
- )));
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 });
19
+ }
20
+ return /* @__PURE__ */ o.createElement(o.Fragment, null);
21
+ };
11
22
  export {
12
- s as default
23
+ I as iconDefiner
13
24
  };
14
25
  //# sourceMappingURL=index.es30.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es30.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.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;"}