@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.
- package/dist/Adapters.d.ts +1 -0
- package/dist/Adapters.d.ts.map +1 -1
- package/dist/components/ArticlePreviewTag.d.ts +11 -0
- package/dist/components/ArticlePreviewTag.d.ts.map +1 -0
- package/dist/components/GridIterator.d.ts +3 -2
- package/dist/components/GridIterator.d.ts.map +1 -1
- package/dist/components/cards/AdvantageWithAccordion.d.ts +12 -0
- package/dist/components/cards/AdvantageWithAccordion.d.ts.map +1 -0
- package/dist/components/cards/Connect.d.ts +19 -0
- package/dist/components/cards/Connect.d.ts.map +1 -0
- package/dist/components/cards/Doc.d.ts +11 -0
- package/dist/components/cards/Doc.d.ts.map +1 -0
- package/dist/components/cards/FAQ.d.ts +14 -0
- package/dist/components/cards/FAQ.d.ts.map +1 -0
- package/dist/components/cards/FeaturedCard.d.ts +1 -1
- package/dist/components/cards/FeaturedCard.d.ts.map +1 -1
- package/dist/components/cards/License.d.ts +10 -0
- package/dist/components/cards/License.d.ts.map +1 -0
- package/dist/components/cards/Package.d.ts +28 -0
- package/dist/components/cards/Package.d.ts.map +1 -0
- package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts +8 -0
- package/dist/components/pieces/ShowMoreAccordionTrigger.d.ts.map +1 -0
- package/dist/components/ui/Link.d.ts +1 -1
- package/dist/components/ui/Link.d.ts.map +1 -1
- package/dist/components/ui/TagLink.d.ts +14 -0
- package/dist/components/ui/TagLink.d.ts.map +1 -0
- package/dist/components/ui/accordion.d.ts +15 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/button/ButtonText.d.ts +1 -0
- package/dist/components/ui/button/ButtonText.d.ts.map +1 -1
- package/dist/components/ui/carousel.d.ts +5 -1
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/input/SearchInput.d.ts +1 -0
- package/dist/components/ui/input/SearchInput.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/decorators/CarouselWrapper.d.ts +3 -2
- package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
- package/dist/icons/comet.svg +5 -0
- package/dist/index.d.ts +23 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +105 -63
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +1 -1
- package/dist/index.es11.js +1 -1
- package/dist/index.es13.js +1 -1
- package/dist/index.es15.js +1 -1
- package/dist/index.es16.js +2 -2
- package/dist/index.es18.js +1 -1
- package/dist/index.es19.js +1 -1
- package/dist/index.es2.js +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +14 -23
- package/dist/index.es21.js.map +1 -1
- package/dist/index.es22.js +36 -173
- package/dist/index.es22.js.map +1 -1
- package/dist/index.es23.js +31 -46
- package/dist/index.es23.js.map +1 -1
- package/dist/index.es24.js +48 -52
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es25.js +14 -61
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es26.js +6 -20
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es27.js +52 -18
- package/dist/index.es27.js.map +1 -1
- package/dist/index.es28.js +27 -91
- package/dist/index.es28.js.map +1 -1
- package/dist/index.es29.js +88 -81
- package/dist/index.es29.js.map +1 -1
- package/dist/index.es3.js +2 -2
- package/dist/index.es30.js +54 -31
- package/dist/index.es30.js.map +1 -1
- package/dist/index.es31.js +92 -6
- package/dist/index.es31.js.map +1 -1
- package/dist/index.es32.js +97 -21
- package/dist/index.es32.js.map +1 -1
- package/dist/index.es33.js +12 -19
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +43 -18
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +23 -10
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es36.js +26 -83
- package/dist/index.es36.js.map +1 -1
- package/dist/index.es37.js +207 -16
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +47 -41
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +53 -40
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es4.js +1 -1
- package/dist/index.es40.js +59 -35
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +18 -54
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +17 -90
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +88 -95
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +88 -25
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +33 -45
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +75 -14
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +39 -212
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +10 -3
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +9 -0
- package/dist/index.es49.js.map +1 -0
- package/dist/index.es5.js +1 -1
- package/dist/index.es50.js +25 -0
- package/dist/index.es50.js.map +1 -0
- package/dist/index.es51.js +23 -0
- package/dist/index.es51.js.map +1 -0
- package/dist/index.es52.js +23 -0
- package/dist/index.es52.js.map +1 -0
- package/dist/index.es53.js +88 -0
- package/dist/index.es53.js.map +1 -0
- package/dist/index.es54.js +42 -0
- package/dist/index.es54.js.map +1 -0
- package/dist/index.es55.js +30 -0
- package/dist/index.es55.js.map +1 -0
- package/dist/index.es56.js +19 -0
- package/dist/index.es56.js.map +1 -0
- package/dist/index.es57.js +50 -0
- package/dist/index.es57.js.map +1 -0
- package/dist/index.es58.js +7 -0
- package/dist/index.es58.js.map +1 -0
- package/dist/index.es59.js +245 -0
- package/dist/index.es59.js.map +1 -0
- package/dist/index.es6.js +36 -31
- package/dist/index.es6.js.map +1 -1
- package/dist/index.es7.js +1 -1
- package/dist/index.es8.js +11 -10
- package/dist/index.es8.js.map +1 -1
- package/dist/index.es9.js.map +1 -1
- package/dist/sections/CardsGridSection.d.ts +2 -2
- package/dist/sections/Hero.d.ts +2 -0
- package/dist/sections/Hero.d.ts.map +1 -1
- package/dist/styles.css +336 -15
- package/package.json +5 -3
package/dist/index.es47.js
CHANGED
|
@@ -1,219 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
package/dist/index.es47.js.map
CHANGED
|
@@ -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;"}
|
package/dist/index.es48.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
};
|
package/dist/index.es48.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es48.js","sources":["../src/
|
|
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 @@
|
|
|
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.
|
|
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;"}
|