@iit/precision-ui 0.5.5 → 0.7.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 (144) hide show
  1. package/dist/Adapters.d.ts +1 -0
  2. package/dist/Adapters.d.ts.map +1 -1
  3. package/dist/components/ArticlePreviewTag.d.ts +11 -0
  4. package/dist/components/ArticlePreviewTag.d.ts.map +1 -0
  5. package/dist/components/GridIterator.d.ts +3 -2
  6. package/dist/components/GridIterator.d.ts.map +1 -1
  7. package/dist/components/cards/AdvantageWithAccordion.d.ts +12 -0
  8. package/dist/components/cards/AdvantageWithAccordion.d.ts.map +1 -0
  9. package/dist/components/cards/Connect.d.ts +19 -0
  10. package/dist/components/cards/Connect.d.ts.map +1 -0
  11. package/dist/components/cards/Doc.d.ts +11 -0
  12. package/dist/components/cards/Doc.d.ts.map +1 -0
  13. package/dist/components/cards/FAQ.d.ts +14 -0
  14. package/dist/components/cards/FAQ.d.ts.map +1 -0
  15. package/dist/components/cards/FeaturedCard.d.ts +1 -1
  16. package/dist/components/cards/FeaturedCard.d.ts.map +1 -1
  17. package/dist/components/cards/License.d.ts +10 -0
  18. package/dist/components/cards/License.d.ts.map +1 -0
  19. package/dist/components/cards/Package.d.ts +28 -0
  20. package/dist/components/cards/Package.d.ts.map +1 -0
  21. package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts +8 -0
  22. package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts.map +1 -0
  23. package/dist/components/ui/Link.d.ts +1 -1
  24. package/dist/components/ui/Link.d.ts.map +1 -1
  25. package/dist/components/ui/TagLink.d.ts +14 -0
  26. package/dist/components/ui/TagLink.d.ts.map +1 -0
  27. package/dist/components/ui/accordion.d.ts +15 -0
  28. package/dist/components/ui/accordion.d.ts.map +1 -0
  29. package/dist/components/ui/button/ButtonText.d.ts +1 -0
  30. package/dist/components/ui/button/ButtonText.d.ts.map +1 -1
  31. package/dist/components/ui/carousel.d.ts +5 -1
  32. package/dist/components/ui/carousel.d.ts.map +1 -1
  33. package/dist/components/ui/input/SearchInput.d.ts +1 -0
  34. package/dist/components/ui/input/SearchInput.d.ts.map +1 -1
  35. package/dist/components/ui/tabs.d.ts +8 -0
  36. package/dist/components/ui/tabs.d.ts.map +1 -0
  37. package/dist/decorators/CarouselWrapper.d.ts +3 -2
  38. package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
  39. package/dist/icons/comet.svg +5 -0
  40. package/dist/index.d.ts +23 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.es.js +105 -63
  43. package/dist/index.es.js.map +1 -1
  44. package/dist/index.es10.js +1 -1
  45. package/dist/index.es11.js +1 -1
  46. package/dist/index.es13.js +1 -1
  47. package/dist/index.es15.js +1 -1
  48. package/dist/index.es16.js +2 -2
  49. package/dist/index.es18.js +1 -1
  50. package/dist/index.es19.js +1 -1
  51. package/dist/index.es2.js +1 -1
  52. package/dist/index.es20.js +1 -1
  53. package/dist/index.es21.js +14 -23
  54. package/dist/index.es21.js.map +1 -1
  55. package/dist/index.es22.js +36 -173
  56. package/dist/index.es22.js.map +1 -1
  57. package/dist/index.es23.js +31 -46
  58. package/dist/index.es23.js.map +1 -1
  59. package/dist/index.es24.js +48 -52
  60. package/dist/index.es24.js.map +1 -1
  61. package/dist/index.es25.js +14 -61
  62. package/dist/index.es25.js.map +1 -1
  63. package/dist/index.es26.js +6 -20
  64. package/dist/index.es26.js.map +1 -1
  65. package/dist/index.es27.js +52 -18
  66. package/dist/index.es27.js.map +1 -1
  67. package/dist/index.es28.js +27 -91
  68. package/dist/index.es28.js.map +1 -1
  69. package/dist/index.es29.js +88 -81
  70. package/dist/index.es29.js.map +1 -1
  71. package/dist/index.es3.js +2 -2
  72. package/dist/index.es30.js +54 -31
  73. package/dist/index.es30.js.map +1 -1
  74. package/dist/index.es31.js +92 -6
  75. package/dist/index.es31.js.map +1 -1
  76. package/dist/index.es32.js +97 -21
  77. package/dist/index.es32.js.map +1 -1
  78. package/dist/index.es33.js +12 -19
  79. package/dist/index.es33.js.map +1 -1
  80. package/dist/index.es34.js +43 -18
  81. package/dist/index.es34.js.map +1 -1
  82. package/dist/index.es35.js +23 -10
  83. package/dist/index.es35.js.map +1 -1
  84. package/dist/index.es36.js +26 -83
  85. package/dist/index.es36.js.map +1 -1
  86. package/dist/index.es37.js +207 -16
  87. package/dist/index.es37.js.map +1 -1
  88. package/dist/index.es38.js +47 -41
  89. package/dist/index.es38.js.map +1 -1
  90. package/dist/index.es39.js +53 -40
  91. package/dist/index.es39.js.map +1 -1
  92. package/dist/index.es4.js +1 -1
  93. package/dist/index.es40.js +59 -35
  94. package/dist/index.es40.js.map +1 -1
  95. package/dist/index.es41.js +18 -54
  96. package/dist/index.es41.js.map +1 -1
  97. package/dist/index.es42.js +17 -90
  98. package/dist/index.es42.js.map +1 -1
  99. package/dist/index.es43.js +88 -95
  100. package/dist/index.es43.js.map +1 -1
  101. package/dist/index.es44.js +88 -25
  102. package/dist/index.es44.js.map +1 -1
  103. package/dist/index.es45.js +33 -45
  104. package/dist/index.es45.js.map +1 -1
  105. package/dist/index.es46.js +75 -14
  106. package/dist/index.es46.js.map +1 -1
  107. package/dist/index.es47.js +39 -212
  108. package/dist/index.es47.js.map +1 -1
  109. package/dist/index.es48.js +10 -3
  110. package/dist/index.es48.js.map +1 -1
  111. package/dist/index.es49.js +9 -0
  112. package/dist/index.es49.js.map +1 -0
  113. package/dist/index.es5.js +1 -1
  114. package/dist/index.es50.js +25 -0
  115. package/dist/index.es50.js.map +1 -0
  116. package/dist/index.es51.js +23 -0
  117. package/dist/index.es51.js.map +1 -0
  118. package/dist/index.es52.js +23 -0
  119. package/dist/index.es52.js.map +1 -0
  120. package/dist/index.es53.js +88 -0
  121. package/dist/index.es53.js.map +1 -0
  122. package/dist/index.es54.js +42 -0
  123. package/dist/index.es54.js.map +1 -0
  124. package/dist/index.es55.js +30 -0
  125. package/dist/index.es55.js.map +1 -0
  126. package/dist/index.es56.js +19 -0
  127. package/dist/index.es56.js.map +1 -0
  128. package/dist/index.es57.js +50 -0
  129. package/dist/index.es57.js.map +1 -0
  130. package/dist/index.es58.js +7 -0
  131. package/dist/index.es58.js.map +1 -0
  132. package/dist/index.es59.js +245 -0
  133. package/dist/index.es59.js.map +1 -0
  134. package/dist/index.es6.js +36 -31
  135. package/dist/index.es6.js.map +1 -1
  136. package/dist/index.es7.js +1 -1
  137. package/dist/index.es8.js +11 -10
  138. package/dist/index.es8.js.map +1 -1
  139. package/dist/index.es9.js.map +1 -1
  140. package/dist/sections/CardsGridSection.d.ts +2 -2
  141. package/dist/sections/Hero.d.ts +2 -0
  142. package/dist/sections/Hero.d.ts.map +1 -1
  143. package/dist/styles.css +336 -15
  144. package/package.json +5 -3
@@ -1,219 +1,46 @@
1
- import e from "react";
2
- import z from "embla-carousel-react";
3
- import { ArrowLeft as _, ArrowRight as D } from "lucide-react";
4
- import { cn as d } from "./index.es31.js";
5
- import { Slot as I } from "@radix-ui/react-slot";
6
- import { cva as j } from "class-variance-authority";
7
- const A = j(
8
- "inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none",
1
+ import * as t from "react";
2
+ import * as e from "@radix-ui/react-tabs";
3
+ import { cn as n } from "./index.es49.js";
4
+ const f = e.Root, o = t.forwardRef(({ className: i, ...a }, s) => /* @__PURE__ */ t.createElement(
5
+ e.List,
9
6
  {
10
- variants: {
11
- variant: {
12
- default: "bg-white text-navy hover:bg-navy-opacity-4",
13
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
14
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
15
- ghost: "hover:bg-accent hover:text-accent-foreground",
16
- link: "text-primary underline-offset-4 hover:underline"
17
- },
18
- size: {
19
- default: "h-10 px-4 py-2",
20
- sm: "h-9 rounded-md px-3",
21
- lg: "h-11 rounded-md px-8",
22
- icon: "h-10 w-10"
23
- }
24
- },
25
- defaultVariants: {
26
- // variant: "default",
27
- // size: "default",
28
- }
7
+ ref: s,
8
+ className: n(
9
+ "inline-flex h1-10 items-center justify-center rounded-lg p-1 text-muted-foreground border border-navy-opacity-16 typo_variant_button",
10
+ i
11
+ ),
12
+ ...a
29
13
  }
30
- ), g = e.forwardRef(
31
- ({ className: r, variant: o, size: a, asChild: l = !1, ...s }, c) => {
32
- const i = l ? I : "button";
33
- return /* @__PURE__ */ e.createElement(
34
- i,
35
- {
36
- className: d(A({ variant: o, size: a }), r),
37
- ref: c,
38
- ...s
39
- }
40
- );
14
+ ));
15
+ o.displayName = e.List.displayName;
16
+ const r = t.forwardRef(({ className: i, ...a }, s) => /* @__PURE__ */ t.createElement(
17
+ e.Trigger,
18
+ {
19
+ ref: s,
20
+ className: n(
21
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-[45px] py-[15px] xl:min-w-[224px] typo_variant_button text-navy ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-navy data-[state=active]:shadow-sm",
22
+ i
23
+ ),
24
+ ...a
41
25
  }
42
- );
43
- g.displayName = "Button";
44
- const h = e.createContext(null);
45
- function v() {
46
- const r = e.useContext(h);
47
- if (!r)
48
- throw new Error("useCarousel must be used within a <Carousel />");
49
- return r;
50
- }
51
- const B = e.forwardRef(
52
- ({
53
- orientation: r = "horizontal",
54
- opts: o,
55
- setApi: a,
56
- plugins: l,
57
- className: s,
58
- children: c,
59
- ...i
60
- }, f) => {
61
- const [N, t] = z(
62
- {
63
- ...o,
64
- axis: r === "horizontal" ? "x" : "y"
65
- },
66
- l
67
- ), [w, C] = e.useState(!1), [E, S] = e.useState(!1), [P, k] = e.useState(0), m = e.useCallback(() => {
68
- if (!t)
69
- return;
70
- const n = t.scrollProgress();
71
- console.log("progress", n), k(n * 100);
72
- }, [t]), u = e.useCallback(
73
- (n) => {
74
- n && (C(n.canScrollPrev()), S(n.canScrollNext()), m());
75
- },
76
- [m]
77
- ), b = e.useCallback(() => {
78
- t?.scrollPrev();
79
- }, [t]), p = e.useCallback(() => {
80
- t?.scrollNext();
81
- }, [t]), R = e.useCallback(
82
- (n) => {
83
- n.key === "ArrowLeft" ? (n.preventDefault(), b()) : n.key === "ArrowRight" && (n.preventDefault(), p());
84
- },
85
- [b, p]
86
- );
87
- return e.useEffect(() => {
88
- !t || !a || a(t);
89
- }, [t, a]), e.useEffect(() => {
90
- if (t)
91
- return u(t), t.on("reInit", u), t.on("select", u), t.on("scroll", m), () => {
92
- t?.off("reInit", u), t?.off("select", u), t?.off("scroll", m);
93
- };
94
- }, [t, u, m]), /* @__PURE__ */ e.createElement(
95
- h.Provider,
96
- {
97
- value: {
98
- carouselRef: N,
99
- api: t,
100
- opts: o,
101
- orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
102
- scrollPrev: b,
103
- scrollNext: p,
104
- canScrollPrev: w,
105
- canScrollNext: E
106
- }
107
- },
108
- /* @__PURE__ */ e.createElement(
109
- "div",
110
- {
111
- ref: f,
112
- onKeyDownCapture: R,
113
- className: d("relative", s),
114
- role: "region",
115
- "aria-roledescription": "carousel",
116
- ...i
117
- },
118
- c,
119
- /* @__PURE__ */ e.createElement("div", { className: "relative w-full mt-4 h-1 bg-navy-opacity-16 rounded-full overflow-hidden md:max-w-3xl mx-auto" }, /* @__PURE__ */ e.createElement(
120
- "div",
121
- {
122
- className: "absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0",
123
- style: {
124
- transform: `translateX(${P - 100}%)`
125
- }
126
- }
127
- )),
128
- /* @__PURE__ */ e.createElement("div", { className: "embla__controls max-w-sm mx-auto mt-5 flex justify-center gap-4" }, /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(x, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" }), /* @__PURE__ */ e.createElement(y, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" })))
129
- )
130
- );
26
+ ));
27
+ r.displayName = e.Trigger.displayName;
28
+ const c = t.forwardRef(({ className: i, ...a }, s) => /* @__PURE__ */ t.createElement(
29
+ e.Content,
30
+ {
31
+ ref: s,
32
+ className: n(
33
+ "mt-7 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
34
+ i
35
+ ),
36
+ ...a
131
37
  }
132
- );
133
- B.displayName = "Carousel";
134
- const K = e.forwardRef(({ className: r, ...o }, a) => {
135
- const { carouselRef: l, orientation: s } = v();
136
- return /* @__PURE__ */ e.createElement("div", { ref: l, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
137
- "div",
138
- {
139
- ref: a,
140
- className: d(
141
- "flex",
142
- s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
143
- r
144
- ),
145
- ...o
146
- }
147
- ));
148
- });
149
- K.displayName = "CarouselContent";
150
- const L = e.forwardRef(({ className: r, ...o }, a) => {
151
- const { orientation: l } = v();
152
- return /* @__PURE__ */ e.createElement(
153
- "div",
154
- {
155
- ref: a,
156
- role: "group",
157
- "aria-roledescription": "slide",
158
- className: d(
159
- "min-w-0 shrink-0 grow-0 basis-full",
160
- l === "horizontal" ? "pl-4" : "pt-4",
161
- r
162
- ),
163
- ...o
164
- }
165
- );
166
- });
167
- L.displayName = "CarouselItem";
168
- const x = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
169
- const { orientation: c, scrollPrev: i, canScrollPrev: f } = v();
170
- return /* @__PURE__ */ e.createElement(
171
- g,
172
- {
173
- ref: s,
174
- variant: o,
175
- size: a,
176
- className: d(
177
- "absolute h-8 w-8 rounded-full",
178
- c === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
179
- r
180
- ),
181
- disabled: !f,
182
- onClick: i,
183
- ...l
184
- },
185
- /* @__PURE__ */ e.createElement(_, { className: "h-4 w-4" }),
186
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
187
- );
188
- });
189
- x.displayName = "CarouselPrevious";
190
- const y = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
191
- const { orientation: c, scrollNext: i, canScrollNext: f } = v();
192
- return /* @__PURE__ */ e.createElement(
193
- g,
194
- {
195
- ref: s,
196
- variant: o,
197
- size: a,
198
- className: d(
199
- "absolute h-8 w-8 rounded-full",
200
- c === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
201
- r
202
- ),
203
- disabled: !f,
204
- onClick: i,
205
- ...l
206
- },
207
- /* @__PURE__ */ e.createElement(D, { className: "h-4 w-4" }),
208
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
209
- );
210
- });
211
- y.displayName = "CarouselNext";
38
+ ));
39
+ c.displayName = e.Content.displayName;
212
40
  export {
213
- B as Carousel,
214
- K as CarouselContent,
215
- L as CarouselItem,
216
- y as CarouselNext,
217
- x as CarouselPrevious
41
+ f as Tabs,
42
+ c as TabsContent,
43
+ o as TabsList,
44
+ r as TabsTrigger
218
45
  };
219
46
  //# sourceMappingURL=index.es47.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es47.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div className=\"relative w-full mt-4 h-1 bg-navy-opacity-16 rounded-full overflow-hidden md:max-w-3xl mx-auto\">\r\n <div\r\n className=\"absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0\"\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div className=\"embla__controls max-w-sm mx-auto mt-5 flex justify-center gap-4\">\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent\" />\r\n </div>\r\n\r\n {/* <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div> */}\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_, index) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={\"embla__dot\".concat(\r\n index === selectedIndex ? \" embla__dot--selected\" : \"\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ArrowLeft","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"index.es47.js","sources":["../src/components/ui/tabs.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst Tabs = TabsPrimitive.Root\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex h1-10 items-center justify-center rounded-lg p-1 text-muted-foreground border border-navy-opacity-16 typo_variant_button',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-[45px] py-[15px] xl:min-w-[224px] typo_variant_button text-navy ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-navy data-[state=active]:shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n 'mt-7 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n"],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","cn","TabsTrigger","TabsContent"],"mappings":";;;AAKA,MAAMA,IAAOC,EAAc,MAErBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACF,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAEpC,MAAAO,IAAcL,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACF,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDG,EAAY,cAAcP,EAAc,QAAQ;AAE1C,MAAAQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAH,EAAA;AAAA,EAACF,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;"}
@@ -1,6 +1,13 @@
1
- function u(r, n) {
2
- return r ? r.length <= n ? r : r.slice(0, n) + "..." : "";
3
- }
1
+ import c from "./index.es56.js";
2
+ import e from "react";
3
+ const m = ({ 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(c, { ...a })
10
+ ))), u = m;
4
11
  export {
5
12
  u as default
6
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.es48.js","sources":["../src/lib/utils/truncateText.ts"],"sourcesContent":["function truncateText(text: string, maxLength: number): string {\r\n if (!text) return ''\r\n if (text.length <= maxLength) {\r\n return text\r\n }\r\n return text.slice(0, maxLength) + '...'\r\n}\r\n\r\nexport default truncateText\r\n"],"names":["truncateText","text","maxLength"],"mappings":"AAAA,SAASA,EAAaC,GAAcC,GAA2B;AAC7D,SAAKD,IACDA,EAAK,UAAUC,IACVD,IAEFA,EAAK,MAAM,GAAGC,CAAS,IAAI,QAJhB;AAKpB;"}
1
+ {"version":3,"file":"index.es48.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","Breadcrumbs$1"],"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,GAIJG,IAAeN;"}
@@ -0,0 +1,9 @@
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
+ }
6
+ export {
7
+ n as cn
8
+ };
9
+ //# sourceMappingURL=index.es49.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es49.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.es5.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import t from "react";
2
2
  import { Button as p } from "./index.es2.js";
3
3
  import { cva as l } from "class-variance-authority";
4
- import { cn as u } from "./index.es31.js";
4
+ import { cn as u } from "./index.es49.js";
5
5
  const f = l(
6
6
  "transition-all rounded-lg hover:rounded-[24px] border",
7
7
  {
@@ -0,0 +1,25 @@
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
+ };
22
+ export {
23
+ I as iconDefiner
24
+ };
25
+ //# sourceMappingURL=index.es50.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es50.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;"}
@@ -0,0 +1,23 @@
1
+ import * as t from "@radix-ui/react-popover";
2
+ import * as e from "react";
3
+ import { cn as i } from "./index.es49.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;
18
+ export {
19
+ p as Popover,
20
+ s as PopoverContent,
21
+ l as PopoverTrigger
22
+ };
23
+ //# sourceMappingURL=index.es51.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es51.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;"}
@@ -0,0 +1,23 @@
1
+ import * as t from "react";
2
+ import * as o from "@radix-ui/react-tooltip";
3
+ import { cn as r } from "./index.es49.js";
4
+ const n = o.Provider, l = o.Root, p = o.Trigger, s = t.forwardRef(({ className: e, sideOffset: i = 4, ...a }, d) => /* @__PURE__ */ t.createElement(
5
+ o.Content,
6
+ {
7
+ ref: d,
8
+ sideOffset: i,
9
+ className: r(
10
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
11
+ e
12
+ ),
13
+ ...a
14
+ }
15
+ ));
16
+ s.displayName = o.Content.displayName;
17
+ export {
18
+ l as Tooltip,
19
+ s as TooltipContent,
20
+ n as TooltipProvider,
21
+ p as TooltipTrigger
22
+ };
23
+ //# sourceMappingURL=index.es52.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es52.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;"}
@@ -0,0 +1,88 @@
1
+ import e, { useState as p, useRef as N, useEffect as I } from "react";
2
+ import { Button as m } from "./index.es2.js";
3
+ import { Close16X16 as k } from "@iit/precision-ui-icons";
4
+ import { Input as R } from "./index.es11.js";
5
+ import { SearchIcon as S } from "lucide-react";
6
+ import { cn as a } from "./index.es49.js";
7
+ const B = ({
8
+ id: f,
9
+ placeholder: h,
10
+ className: v,
11
+ containerClassName: b,
12
+ value: r = "",
13
+ onChange: t,
14
+ onKeyDown: d,
15
+ onClickSubmitButton: g,
16
+ onClickClearButton: n,
17
+ withoutBottomBorder: y,
18
+ ...w
19
+ }) => {
20
+ const [o, s] = p(r), [i, u] = p(!1), l = N(null);
21
+ I(() => {
22
+ s(r);
23
+ }, [r]);
24
+ const x = (c) => {
25
+ s(c.target.value), t && t(c);
26
+ }, E = () => {
27
+ s(""), l.current && l.current.focus(), t && t({
28
+ target: { value: "" }
29
+ }), n && n();
30
+ };
31
+ return /* @__PURE__ */ e.createElement(
32
+ "div",
33
+ {
34
+ className: a("relative w-full max-w-2xl", b),
35
+ onMouseEnter: () => u(!0),
36
+ onMouseLeave: () => u(!1)
37
+ },
38
+ /* @__PURE__ */ e.createElement(
39
+ R,
40
+ {
41
+ ref: l,
42
+ id: f,
43
+ placeholder: h,
44
+ className: a(
45
+ "w-full pl-8 pr-20 hover:bg-navy-opacity-4-absolute rounded-full bg-whitish h-14",
46
+ v,
47
+ y && "border-b border-transparent"
48
+ ),
49
+ value: o,
50
+ onChange: x,
51
+ onKeyDown: d,
52
+ ...w
53
+ }
54
+ ),
55
+ /* @__PURE__ */ e.createElement(
56
+ m,
57
+ {
58
+ type: "button",
59
+ variant: "ghost",
60
+ size: "icon",
61
+ className: a(
62
+ "absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground p-0 hover:bg-navy group",
63
+ i ? "bg-white" : "bg-navy-opacity-8"
64
+ ),
65
+ onClick: E,
66
+ style: { display: o ? "block" : "none" }
67
+ },
68
+ /* @__PURE__ */ e.createElement(k, { className: "h-[10px] w-[10px] left-[5px] top-0 relative text-navy group-hover:text-whitish" }),
69
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Очистить")
70
+ ),
71
+ /* @__PURE__ */ e.createElement(
72
+ m,
73
+ {
74
+ className: a(
75
+ "absolute right-2 top-1/2 -translate-y-1/2 text-navy h-10 w-10 hover:bg-navy group/submit disabled:pointer-events-auto active:transform active:scale-90",
76
+ i ? "bg-white" : "bg-navy-opacity-8"
77
+ ),
78
+ disabled: !o,
79
+ onClick: g || void 0
80
+ },
81
+ /* @__PURE__ */ e.createElement(S, { className: "h-4 w-4 group-hover/submit:text-whitish" })
82
+ )
83
+ );
84
+ };
85
+ export {
86
+ B as default
87
+ };
88
+ //# sourceMappingURL=index.es53.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es53.js","sources":["../src/components/ui/input/SearchInputWithButton.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\r\n\r\nimport { Button } from \"../button\";\r\nimport { Close16X16 } from \"@iit/precision-ui-icons\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { SearchIcon } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils/cn\";\r\n\r\ninterface SearchInputWithButtonProps {\r\n id?: string;\r\n placeholder?: string;\r\n className?: string;\r\n containerClassName?: string;\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onClickSubmitButton?: () => void;\r\n onClickClearButton?: () => void;\r\n withoutBottomBorder?: boolean;\r\n}\r\n\r\nconst SearchInputWithButton: React.FC<SearchInputWithButtonProps> = ({\r\n id,\r\n placeholder,\r\n className,\r\n containerClassName,\r\n value = \"\",\r\n onChange,\r\n onKeyDown,\r\n onClickSubmitButton,\r\n onClickClearButton,\r\n withoutBottomBorder,\r\n ...props\r\n}) => {\r\n const [inputValue, setInputValue] = useState(value);\r\n const [isHovered, setIsHovered] = useState(false); // Track hover state\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n setInputValue(value);\r\n }, [value]);\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setInputValue(event.target.value);\r\n if (onChange) {\r\n onChange(event);\r\n }\r\n };\r\n\r\n const handleClearClick = () => {\r\n setInputValue(\"\");\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n if (onChange) {\r\n onChange({\r\n target: { value: \"\" },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n if (onClickClearButton) {\r\n onClickClearButton();\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(\"relative w-full max-w-2xl\", containerClassName)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n >\r\n <Input\r\n ref={inputRef}\r\n id={id}\r\n placeholder={placeholder}\r\n className={cn(\r\n \"w-full pl-8 pr-20 hover:bg-navy-opacity-4-absolute rounded-full bg-whitish h-14\",\r\n className,\r\n withoutBottomBorder && \"border-b border-transparent\"\r\n )}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onKeyDown={onKeyDown}\r\n {...props}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn(\r\n \"absolute right-14 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground p-0 hover:bg-navy group\",\r\n isHovered ? \"bg-white\" : \"bg-navy-opacity-8\"\r\n )}\r\n onClick={handleClearClick}\r\n style={{ display: inputValue ? \"block\" : \"none\" }}\r\n >\r\n <Close16X16 className=\"h-[10px] w-[10px] left-[5px] top-0 relative text-navy group-hover:text-whitish\" />\r\n <span className=\"sr-only\">Очистить</span>\r\n </Button>\r\n\r\n <Button\r\n className={cn(\r\n \"absolute right-2 top-1/2 -translate-y-1/2 text-navy h-10 w-10 hover:bg-navy group/submit disabled:pointer-events-auto active:transform active:scale-90\",\r\n isHovered ? \"bg-white\" : \"bg-navy-opacity-8\"\r\n )}\r\n disabled={!inputValue}\r\n onClick={onClickSubmitButton || undefined}\r\n >\r\n <SearchIcon className=\"h-4 w-4 group-hover/submit:text-whitish\" />\r\n </Button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SearchInputWithButton;\r\n"],"names":["SearchInputWithButton","id","placeholder","className","containerClassName","value","onChange","onKeyDown","onClickSubmitButton","onClickClearButton","withoutBottomBorder","props","inputValue","setInputValue","useState","isHovered","setIsHovered","inputRef","useRef","useEffect","handleInputChange","event","handleClearClick","React","cn","Input","Button","Close16X16","SearchIcon"],"mappings":";;;;;;AAqBA,MAAMA,IAA8D,CAAC;AAAA,EACnE,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAST,CAAK,GAC5C,CAACU,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAC1CG,IAAWC,EAAyB,IAAI;AAE9C,EAAAC,EAAU,MAAM;AACd,IAAAN,EAAcR,CAAK;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEJ,QAAAe,IAAoB,CAACC,MAA+C;AAC1D,IAAAR,EAAAQ,EAAM,OAAO,KAAK,GAC5Bf,KACFA,EAASe,CAAK;AAAA,EAChB,GAGIC,IAAmB,MAAM;AAC7B,IAAAT,EAAc,EAAE,GACZI,EAAS,WACXA,EAAS,QAAQ,SAEfX,KACOA,EAAA;AAAA,MACP,QAAQ,EAAE,OAAO,GAAG;AAAA,IAAA,CACkB,GAEtCG,KACiBA;EACrB;AAIA,SAAAc,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,6BAA6BpB,CAAkB;AAAA,MAC7D,cAAc,MAAMY,EAAa,EAAI;AAAA,MACrC,cAAc,MAAMA,EAAa,EAAK;AAAA,IAAA;AAAA,IAEtCO,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,KAAKR;AAAA,QACL,IAAAhB;AAAA,QACA,aAAAC;AAAA,QACA,WAAWsB;AAAA,UACT;AAAA,UACArB;AAAA,UACAO,KAAuB;AAAA,QACzB;AAAA,QACA,OAAOE;AAAA,QACP,UAAUQ;AAAA,QACV,WAAAb;AAAA,QACC,GAAGI;AAAA,MAAA;AAAA,IACN;AAAA,IACAY,gBAAAA,EAAA;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAWF;AAAA,UACT;AAAA,UACAT,IAAY,aAAa;AAAA,QAC3B;AAAA,QACA,SAASO;AAAA,QACT,OAAO,EAAE,SAASV,IAAa,UAAU,OAAO;AAAA,MAAA;AAAA,MAEhDW,gBAAAA,EAAA,cAACI,GAAW,EAAA,WAAU,iFAAiF,CAAA;AAAA,MACtGJ,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,UAAQ;AAAA,IACpC;AAAA,IAEAA,gBAAAA,EAAA;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,WAAWF;AAAA,UACT;AAAA,UACAT,IAAY,aAAa;AAAA,QAC3B;AAAA,QACA,UAAU,CAACH;AAAA,QACX,SAASJ,KAAuB;AAAA,MAAA;AAAA,MAEhCe,gBAAAA,EAAA,cAACK,GAAW,EAAA,WAAU,0CAA0C,CAAA;AAAA,IAClE;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,42 @@
1
+ import { CarouselWrapper as o } from "./index.es57.js";
2
+ import r from "react";
3
+ import n from "./index.es42.js";
4
+ const E = ({
5
+ items: t,
6
+ renderItem: l,
7
+ columns: s = 4,
8
+ hideControlsOnDesktop: d = !1,
9
+ withoutCarousel: g = !1,
10
+ // TODO: add to props chain
11
+ footnote: c,
12
+ variant: i
13
+ }) => {
14
+ const m = (e) => {
15
+ switch (e) {
16
+ case 1:
17
+ return "grid grid-cols-1 gap-3";
18
+ case 2:
19
+ return "grid grid-cols-1 sm:grid-cols-2 gap-3";
20
+ case 3:
21
+ return "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3";
22
+ case 4:
23
+ return "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3";
24
+ default:
25
+ return "grid grid-cols-1 gap-3";
26
+ }
27
+ };
28
+ return /* @__PURE__ */ r.createElement("div", null, g ? /* @__PURE__ */ r.createElement("div", { className: m(s) }, t.map((e, a) => /* @__PURE__ */ r.createElement(r.Fragment, { key: a }, l(e, a)))) : /* @__PURE__ */ r.createElement(
29
+ o,
30
+ {
31
+ items: t,
32
+ renderItem: (e, a) => l(e, a),
33
+ columns: s,
34
+ hideControlsOnDesktop: d,
35
+ variant: i
36
+ }
37
+ ), c && /* @__PURE__ */ r.createElement("div", { className: "mt-6" }, /* @__PURE__ */ r.createElement(n, { variant: "small-body", as: "div" }, c)));
38
+ };
39
+ export {
40
+ E as default
41
+ };
42
+ //# sourceMappingURL=index.es54.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es54.js","sources":["../src/components/GridIterator.tsx"],"sourcesContent":["import { CarouselWrapper } from '@/decorators/CarouselWrapper'\r\nimport React from 'react'\r\nimport Text from './core/typography/Text'\r\n\r\n// import { getAdapter } from '@/Adapters'\r\n\r\ninterface GridIteratorProps<T> {\r\n items: T[]\r\n renderItem: (item: T, index: number) => React.ReactNode\r\n columns?: number\r\n hideControlsOnDesktop?: boolean\r\n withoutCarousel?: boolean\r\n footnote?: string\r\n variant?: 'default' | 'white'\r\n}\r\n\r\nconst GridIterator = <T,>({\r\n items,\r\n renderItem,\r\n columns = 4,\r\n hideControlsOnDesktop = false,\r\n withoutCarousel = false, // TODO: add to props chain\r\n footnote,\r\n variant,\r\n}: GridIteratorProps<T>) => {\r\n const getGridClasses = (columns: number) => {\r\n switch (columns) {\r\n case 1:\r\n return 'grid grid-cols-1 gap-3'\r\n case 2:\r\n return 'grid grid-cols-1 sm:grid-cols-2 gap-3'\r\n case 3:\r\n return 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3'\r\n case 4:\r\n return 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3'\r\n default:\r\n return 'grid grid-cols-1 gap-3'\r\n }\r\n }\r\n // const CarouselWrapper = getAdapter('CarouselWrapper')\r\n\r\n return (\r\n <div>\r\n {withoutCarousel ? (\r\n <div className={getGridClasses(columns)}>\r\n {items.map((item, index) => (\r\n <React.Fragment key={index}>\r\n {renderItem(item, index)}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n ) : (\r\n <CarouselWrapper\r\n items={items}\r\n // renderItem={renderItem}\r\n renderItem={(item, index) => renderItem(item as T, index)}\r\n columns={columns}\r\n hideControlsOnDesktop={hideControlsOnDesktop}\r\n variant={variant}\r\n />\r\n )}\r\n\r\n {footnote && (\r\n <div className=\"mt-6\">\r\n <Text variant=\"small-body\" as=\"div\">\r\n {footnote}\r\n </Text>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default GridIterator\r\n"],"names":["GridIterator","items","renderItem","columns","hideControlsOnDesktop","withoutCarousel","footnote","variant","getGridClasses","React","item","index","CarouselWrapper","Text"],"mappings":";;;AAgBA,MAAMA,IAAe,CAAK;AAAA,EACxB,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,uBAAAC,IAAwB;AAAA,EACxB,iBAAAC,IAAkB;AAAA;AAAA,EAClB,UAAAC;AAAA,EACA,SAAAC;AACF,MAA4B;AACpB,QAAAC,IAAiB,CAACL,MAAoB;AAC1C,YAAQA,GAAS;AAAA,MACf,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IACX;AAAA,EAAA;AAKA,SAAAM,gBAAAA,EAAA,cAAC,OACE,MAAAJ,IACEI,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAWD,EAAeL,CAAO,EAAA,GACnCF,EAAM,IAAI,CAACS,GAAMC,MACfF,gBAAAA,EAAA,cAAAA,EAAM,UAAN,EAAe,KAAKE,EAAA,GAClBT,EAAWQ,GAAMC,CAAK,CACzB,CACD,CACH,IAEAF,gBAAAA,EAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,OAAAX;AAAA,MAEA,YAAY,CAACS,GAAMC,MAAUT,EAAWQ,GAAWC,CAAK;AAAA,MACxD,SAAAR;AAAA,MACA,uBAAAC;AAAA,MACA,SAAAG;AAAA,IAAA;AAAA,EAAA,GAIHD,KACEG,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,OACb,GAAAA,gBAAAA,EAAA,cAACI,GAAK,EAAA,SAAQ,cAAa,IAAG,SAC3BP,CACH,CACF,CAEJ;AAEJ;"}