@iit/precision-ui 0.8.0 → 0.8.2
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/hooks/useFetch.d.ts +2 -0
- package/dist/hooks/useFetch.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +8 -6
- 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.es14.js +1 -1
- package/dist/index.es15.js +1 -1
- package/dist/index.es17.js +1 -1
- package/dist/index.es18.js +2 -2
- package/dist/index.es2.js +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es24.js +1 -1
- package/dist/index.es25.js +1 -1
- package/dist/index.es26.js +1 -1
- package/dist/index.es29.js +1 -1
- package/dist/index.es3.js +2 -2
- package/dist/index.es30.js +1 -1
- package/dist/index.es31.js +1 -1
- package/dist/index.es32.js +1 -1
- package/dist/index.es33.js +1 -1
- package/dist/index.es34.js +1 -1
- package/dist/index.es36.js +1 -1
- package/dist/index.es4.js +1 -1
- package/dist/index.es40.js +92 -74
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es42.js +1 -1
- package/dist/index.es44.js +2 -2
- package/dist/index.es45.js +7 -7
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +1 -1
- package/dist/index.es47.js +1 -1
- package/dist/index.es48.js +1 -1
- package/dist/index.es49.js +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.es50.js +5 -5
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +1 -1
- package/dist/index.es52.js +1 -1
- package/dist/index.es53.js +18 -11
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +11 -6
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +6 -22
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +21 -19
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +17 -17
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +20 -4
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +3 -249
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es6.js +1 -1
- package/dist/index.es60.js +246 -82
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +85 -26
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +27 -16
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +19 -0
- package/dist/index.es63.js.map +1 -0
- package/dist/index.es7.js +1 -1
- package/dist/index.es8.js +1 -1
- package/dist/sections/Hero.d.ts +1 -0
- package/dist/sections/Hero.d.ts.map +1 -1
- package/dist/sections/common.d.ts +2 -0
- package/dist/sections/common.d.ts.map +1 -1
- package/dist/styles.css +12 -12
- package/package.json +1 -1
package/dist/index.es59.js
CHANGED
|
@@ -1,253 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { ChevronLeft as K, ChevronRight as L } from "lucide-react";
|
|
4
|
-
import { cn as s } from "./index.es54.js";
|
|
5
|
-
import { Slot as V } from "@radix-ui/react-slot";
|
|
6
|
-
import { cva as X } from "class-variance-authority";
|
|
7
|
-
const $ = X(
|
|
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",
|
|
9
|
-
{
|
|
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
|
-
}
|
|
29
|
-
}
|
|
30
|
-
), p = e.forwardRef(
|
|
31
|
-
({ className: r, variant: o, size: l, asChild: a = !1, ...c }, u) => {
|
|
32
|
-
const i = a ? V : "button";
|
|
33
|
-
return /* @__PURE__ */ e.createElement(
|
|
34
|
-
i,
|
|
35
|
-
{
|
|
36
|
-
className: s($({ variant: o, size: l }), r),
|
|
37
|
-
ref: u,
|
|
38
|
-
...c
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
);
|
|
43
|
-
p.displayName = "Button";
|
|
44
|
-
const w = e.createContext(null);
|
|
45
|
-
function h() {
|
|
46
|
-
const r = e.useContext(w);
|
|
47
|
-
if (!r)
|
|
48
|
-
throw new Error("useCarousel must be used within a <Carousel />");
|
|
49
|
-
return r;
|
|
1
|
+
function u(r, n) {
|
|
2
|
+
return r ? r.length <= n ? r : r.slice(0, n) + "..." : "";
|
|
50
3
|
}
|
|
51
|
-
const q = e.forwardRef(
|
|
52
|
-
({
|
|
53
|
-
orientation: r = "horizontal",
|
|
54
|
-
opts: o,
|
|
55
|
-
setApi: l,
|
|
56
|
-
plugins: a,
|
|
57
|
-
className: c,
|
|
58
|
-
children: u,
|
|
59
|
-
hideControlsOnDesktop: i = !1,
|
|
60
|
-
variant: d = "default",
|
|
61
|
-
controlsAlign: g = "center",
|
|
62
|
-
progressClass: N,
|
|
63
|
-
...E
|
|
64
|
-
}, S) => {
|
|
65
|
-
const [P, t] = B(
|
|
66
|
-
{
|
|
67
|
-
...o,
|
|
68
|
-
axis: r === "horizontal" ? "x" : "y"
|
|
69
|
-
},
|
|
70
|
-
a
|
|
71
|
-
), [k, R] = e.useState(!1), [z, _] = e.useState(!1), [I, D] = e.useState(0), m = e.useCallback(() => {
|
|
72
|
-
if (!t)
|
|
73
|
-
return;
|
|
74
|
-
const n = t.scrollProgress();
|
|
75
|
-
console.log("progress", n), D(n * 100);
|
|
76
|
-
}, [t]), f = e.useCallback(
|
|
77
|
-
(n) => {
|
|
78
|
-
n && (R(n.canScrollPrev()), _(n.canScrollNext()), m());
|
|
79
|
-
},
|
|
80
|
-
[m]
|
|
81
|
-
), v = e.useCallback(() => {
|
|
82
|
-
t?.scrollPrev();
|
|
83
|
-
}, [t]), b = e.useCallback(() => {
|
|
84
|
-
t?.scrollNext();
|
|
85
|
-
}, [t]), j = e.useCallback(
|
|
86
|
-
(n) => {
|
|
87
|
-
n.key === "ArrowLeft" ? (n.preventDefault(), v()) : n.key === "ArrowRight" && (n.preventDefault(), b());
|
|
88
|
-
},
|
|
89
|
-
[v, b]
|
|
90
|
-
);
|
|
91
|
-
e.useEffect(() => {
|
|
92
|
-
!t || !l || l(t);
|
|
93
|
-
}, [t, l]), e.useEffect(() => {
|
|
94
|
-
if (t)
|
|
95
|
-
return f(t), t.on("reInit", f), t.on("select", f), t.on("scroll", m), () => {
|
|
96
|
-
t?.off("reInit", f), t?.off("select", f), t?.off("scroll", m);
|
|
97
|
-
};
|
|
98
|
-
}, [t, f, m]);
|
|
99
|
-
const x = s(
|
|
100
|
-
"relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10",
|
|
101
|
-
d === "white" ? "hover:bg-whitish border-whitish-opacity-32" : "hover:bg-navy hover:text-white border-navy-opacity-32"
|
|
102
|
-
);
|
|
103
|
-
return /* @__PURE__ */ e.createElement(
|
|
104
|
-
w.Provider,
|
|
105
|
-
{
|
|
106
|
-
value: {
|
|
107
|
-
carouselRef: P,
|
|
108
|
-
api: t,
|
|
109
|
-
opts: o,
|
|
110
|
-
orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
|
|
111
|
-
scrollPrev: v,
|
|
112
|
-
scrollNext: b,
|
|
113
|
-
canScrollPrev: k,
|
|
114
|
-
canScrollNext: z
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
/* @__PURE__ */ e.createElement(
|
|
118
|
-
"div",
|
|
119
|
-
{
|
|
120
|
-
ref: S,
|
|
121
|
-
onKeyDownCapture: j,
|
|
122
|
-
className: s("relative", c),
|
|
123
|
-
role: "region",
|
|
124
|
-
"aria-roledescription": "carousel",
|
|
125
|
-
...E
|
|
126
|
-
},
|
|
127
|
-
u,
|
|
128
|
-
/* @__PURE__ */ e.createElement(
|
|
129
|
-
"div",
|
|
130
|
-
{
|
|
131
|
-
className: s(
|
|
132
|
-
"relative w-full mt-8 rounded-full overflow-hidden",
|
|
133
|
-
i ? "lg:hidden" : "",
|
|
134
|
-
d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5",
|
|
135
|
-
g === "center" ? "mx-auto md:max-w-2xl" : "md:max-w-xl",
|
|
136
|
-
N
|
|
137
|
-
)
|
|
138
|
-
},
|
|
139
|
-
/* @__PURE__ */ e.createElement(
|
|
140
|
-
"div",
|
|
141
|
-
{
|
|
142
|
-
className: s(
|
|
143
|
-
"absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0",
|
|
144
|
-
d === "white" ? "bg-whitish" : "bg-navy"
|
|
145
|
-
),
|
|
146
|
-
style: {
|
|
147
|
-
transform: `translateX(${I - 100}%)`
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
),
|
|
152
|
-
/* @__PURE__ */ e.createElement(
|
|
153
|
-
"div",
|
|
154
|
-
{
|
|
155
|
-
className: s(
|
|
156
|
-
"embla__controls max-w-sm mt-6 flex gap-4",
|
|
157
|
-
i ? "lg:hidden" : "",
|
|
158
|
-
g === "center" ? "mx-auto flex justify-center" : ""
|
|
159
|
-
)
|
|
160
|
-
},
|
|
161
|
-
/* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(y, { className: x }), /* @__PURE__ */ e.createElement(C, { className: x }))
|
|
162
|
-
)
|
|
163
|
-
)
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
);
|
|
167
|
-
q.displayName = "Carousel";
|
|
168
|
-
const F = e.forwardRef(({ className: r, ...o }, l) => {
|
|
169
|
-
const { carouselRef: a, orientation: c } = h();
|
|
170
|
-
return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
|
|
171
|
-
"div",
|
|
172
|
-
{
|
|
173
|
-
ref: l,
|
|
174
|
-
className: s(
|
|
175
|
-
"flex",
|
|
176
|
-
c === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
|
|
177
|
-
r
|
|
178
|
-
),
|
|
179
|
-
...o
|
|
180
|
-
}
|
|
181
|
-
));
|
|
182
|
-
});
|
|
183
|
-
F.displayName = "CarouselContent";
|
|
184
|
-
const G = e.forwardRef(({ className: r, ...o }, l) => {
|
|
185
|
-
const { orientation: a } = h();
|
|
186
|
-
return /* @__PURE__ */ e.createElement(
|
|
187
|
-
"div",
|
|
188
|
-
{
|
|
189
|
-
ref: l,
|
|
190
|
-
role: "group",
|
|
191
|
-
"aria-roledescription": "slide",
|
|
192
|
-
className: s(
|
|
193
|
-
"min-w-0 shrink-0 grow-0 basis-full",
|
|
194
|
-
a === "horizontal" ? "pl-4" : "pt-4",
|
|
195
|
-
r
|
|
196
|
-
),
|
|
197
|
-
...o
|
|
198
|
-
}
|
|
199
|
-
);
|
|
200
|
-
});
|
|
201
|
-
G.displayName = "CarouselItem";
|
|
202
|
-
const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
203
|
-
const { orientation: u, scrollPrev: i, canScrollPrev: d } = h();
|
|
204
|
-
return /* @__PURE__ */ e.createElement(
|
|
205
|
-
p,
|
|
206
|
-
{
|
|
207
|
-
ref: c,
|
|
208
|
-
variant: o,
|
|
209
|
-
size: l,
|
|
210
|
-
className: s(
|
|
211
|
-
"absolute h-8 w-8 rounded-full",
|
|
212
|
-
u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
213
|
-
r
|
|
214
|
-
),
|
|
215
|
-
disabled: !d,
|
|
216
|
-
onClick: i,
|
|
217
|
-
...a
|
|
218
|
-
},
|
|
219
|
-
/* @__PURE__ */ e.createElement(K, { className: "h-5 w-5" }),
|
|
220
|
-
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
|
|
221
|
-
);
|
|
222
|
-
});
|
|
223
|
-
y.displayName = "CarouselPrevious";
|
|
224
|
-
const C = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
225
|
-
const { orientation: u, scrollNext: i, canScrollNext: d } = h();
|
|
226
|
-
return /* @__PURE__ */ e.createElement(
|
|
227
|
-
p,
|
|
228
|
-
{
|
|
229
|
-
ref: c,
|
|
230
|
-
variant: o,
|
|
231
|
-
size: l,
|
|
232
|
-
className: s(
|
|
233
|
-
"absolute h-8 w-8 rounded-full",
|
|
234
|
-
u === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
235
|
-
r
|
|
236
|
-
),
|
|
237
|
-
disabled: !d,
|
|
238
|
-
onClick: i,
|
|
239
|
-
...a
|
|
240
|
-
},
|
|
241
|
-
/* @__PURE__ */ e.createElement(L, { className: "h-5 w-5" }),
|
|
242
|
-
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
|
|
243
|
-
);
|
|
244
|
-
});
|
|
245
|
-
C.displayName = "CarouselNext";
|
|
246
4
|
export {
|
|
247
|
-
|
|
248
|
-
F as CarouselContent,
|
|
249
|
-
G as CarouselItem,
|
|
250
|
-
C as CarouselNext,
|
|
251
|
-
y as CarouselPrevious
|
|
5
|
+
u as default
|
|
252
6
|
};
|
|
253
7
|
//# sourceMappingURL=index.es59.js.map
|
package/dist/index.es59.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es59.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 { ChevronLeft, ChevronRight } 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// import { DotButton, useDotButton } from '../CarouselDotButton'\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\ninterface CustomProps {\r\n hideControlsOnDesktop?: boolean\r\n variant?: 'default' | 'white'\r\n controlsAlign?: 'left' | 'center'\r\n progressClass?: string\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps & CustomProps\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 hideControlsOnDesktop = false,\r\n variant = 'default',\r\n controlsAlign = 'center',\r\n progressClass,\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 const buttonClasses = cn(\r\n 'relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10',\r\n variant === 'white'\r\n ? 'hover:bg-whitish border-whitish-opacity-32'\r\n : 'hover:bg-navy hover:text-white border-navy-opacity-32'\r\n )\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\r\n className={cn(\r\n 'relative w-full mt-8 rounded-full overflow-hidden',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n variant === 'white'\r\n ? 'bg-whitish-opacity-16 h-0.5'\r\n : 'bg-gray-300 h-0.5',\r\n controlsAlign === 'center'\r\n ? 'mx-auto md:max-w-2xl'\r\n : 'md:max-w-xl',\r\n progressClass\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n 'absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0',\r\n variant === 'white' ? 'bg-whitish' : 'bg-navy'\r\n )}\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div\r\n className={cn(\r\n 'embla__controls max-w-sm mt-6 flex gap-4',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n controlsAlign === 'center' ? 'mx-auto flex justify-center' : ''\r\n )}\r\n >\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className={buttonClasses} />\r\n <CarouselNext className={buttonClasses} />\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((_: unknown, index: number) => (\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 <ChevronLeft className=\"h-5 w-5\" />\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 <ChevronRight className=\"h-5 w-5\" />\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","hideControlsOnDesktop","controlsAlign","progressClass","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","buttonClasses","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ChevronLeft","ChevronRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es59.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;"}
|
package/dist/index.es6.js
CHANGED
|
@@ -2,7 +2,7 @@ import e from "react";
|
|
|
2
2
|
import { Button as m } from "./index.es2.js";
|
|
3
3
|
import { LessLink16X16 as d, MoreLink16X16 as f, ArrowLinkRight16X16 as h } from "@iit/precision-ui-icons";
|
|
4
4
|
import { cva as i } from "class-variance-authority";
|
|
5
|
-
import { cn as n } from "./index.
|
|
5
|
+
import { cn as n } from "./index.es55.js";
|
|
6
6
|
import { ArrowDownToLine as p } from "lucide-react";
|
|
7
7
|
import { getAdapter as g } from "./index.es9.js";
|
|
8
8
|
const w = i("bg-link-gradient-container hover:cursor-pointer", {
|
package/dist/index.es60.js
CHANGED
|
@@ -1,89 +1,253 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { cn as
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import e from "react";
|
|
2
|
+
import B from "embla-carousel-react";
|
|
3
|
+
import { ChevronLeft as K, ChevronRight as L } from "lucide-react";
|
|
4
|
+
import { cn as s } from "./index.es55.js";
|
|
5
|
+
import { Slot as V } from "@radix-ui/react-slot";
|
|
6
|
+
import { cva as X } from "class-variance-authority";
|
|
7
|
+
const $ = X(
|
|
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",
|
|
7
9
|
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
+
}
|
|
14
29
|
}
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
)));
|
|
28
|
-
s.displayName = a.Input.displayName;
|
|
29
|
-
const l = e.forwardRef(({ className: t, ...r }, o) => /* @__PURE__ */ e.createElement(
|
|
30
|
-
a.List,
|
|
31
|
-
{
|
|
32
|
-
ref: o,
|
|
33
|
-
className: m("", t),
|
|
34
|
-
...r
|
|
35
|
-
}
|
|
36
|
-
));
|
|
37
|
-
l.displayName = a.List.displayName;
|
|
38
|
-
const p = e.forwardRef((t, r) => /* @__PURE__ */ e.createElement(
|
|
39
|
-
a.Empty,
|
|
40
|
-
{
|
|
41
|
-
ref: r,
|
|
42
|
-
className: "py-6 text-center text-sm",
|
|
43
|
-
...t
|
|
30
|
+
), p = e.forwardRef(
|
|
31
|
+
({ className: r, variant: o, size: l, asChild: a = !1, ...c }, u) => {
|
|
32
|
+
const i = a ? V : "button";
|
|
33
|
+
return /* @__PURE__ */ e.createElement(
|
|
34
|
+
i,
|
|
35
|
+
{
|
|
36
|
+
className: s($({ variant: o, size: l }), r),
|
|
37
|
+
ref: u,
|
|
38
|
+
...c
|
|
39
|
+
}
|
|
40
|
+
);
|
|
44
41
|
}
|
|
45
|
-
)
|
|
46
|
-
p.displayName =
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
42
|
+
);
|
|
43
|
+
p.displayName = "Button";
|
|
44
|
+
const w = e.createContext(null);
|
|
45
|
+
function h() {
|
|
46
|
+
const r = e.useContext(w);
|
|
47
|
+
if (!r)
|
|
48
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
49
|
+
return r;
|
|
50
|
+
}
|
|
51
|
+
const q = e.forwardRef(
|
|
52
|
+
({
|
|
53
|
+
orientation: r = "horizontal",
|
|
54
|
+
opts: o,
|
|
55
|
+
setApi: l,
|
|
56
|
+
plugins: a,
|
|
57
|
+
className: c,
|
|
58
|
+
children: u,
|
|
59
|
+
hideControlsOnDesktop: i = !1,
|
|
60
|
+
variant: d = "default",
|
|
61
|
+
controlsAlign: g = "center",
|
|
62
|
+
progressClass: N,
|
|
63
|
+
...E
|
|
64
|
+
}, S) => {
|
|
65
|
+
const [P, t] = B(
|
|
66
|
+
{
|
|
67
|
+
...o,
|
|
68
|
+
axis: r === "horizontal" ? "x" : "y"
|
|
69
|
+
},
|
|
70
|
+
a
|
|
71
|
+
), [k, R] = e.useState(!1), [z, _] = e.useState(!1), [I, D] = e.useState(0), m = e.useCallback(() => {
|
|
72
|
+
if (!t)
|
|
73
|
+
return;
|
|
74
|
+
const n = t.scrollProgress();
|
|
75
|
+
console.log("progress", n), D(n * 100);
|
|
76
|
+
}, [t]), f = e.useCallback(
|
|
77
|
+
(n) => {
|
|
78
|
+
n && (R(n.canScrollPrev()), _(n.canScrollNext()), m());
|
|
79
|
+
},
|
|
80
|
+
[m]
|
|
81
|
+
), v = e.useCallback(() => {
|
|
82
|
+
t?.scrollPrev();
|
|
83
|
+
}, [t]), b = e.useCallback(() => {
|
|
84
|
+
t?.scrollNext();
|
|
85
|
+
}, [t]), j = e.useCallback(
|
|
86
|
+
(n) => {
|
|
87
|
+
n.key === "ArrowLeft" ? (n.preventDefault(), v()) : n.key === "ArrowRight" && (n.preventDefault(), b());
|
|
88
|
+
},
|
|
89
|
+
[v, b]
|
|
90
|
+
);
|
|
91
|
+
e.useEffect(() => {
|
|
92
|
+
!t || !l || l(t);
|
|
93
|
+
}, [t, l]), e.useEffect(() => {
|
|
94
|
+
if (t)
|
|
95
|
+
return f(t), t.on("reInit", f), t.on("select", f), t.on("scroll", m), () => {
|
|
96
|
+
t?.off("reInit", f), t?.off("select", f), t?.off("scroll", m);
|
|
97
|
+
};
|
|
98
|
+
}, [t, f, m]);
|
|
99
|
+
const x = s(
|
|
100
|
+
"relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10",
|
|
101
|
+
d === "white" ? "hover:bg-whitish border-whitish-opacity-32" : "hover:bg-navy hover:text-white border-navy-opacity-32"
|
|
102
|
+
);
|
|
103
|
+
return /* @__PURE__ */ e.createElement(
|
|
104
|
+
w.Provider,
|
|
105
|
+
{
|
|
106
|
+
value: {
|
|
107
|
+
carouselRef: P,
|
|
108
|
+
api: t,
|
|
109
|
+
opts: o,
|
|
110
|
+
orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
|
|
111
|
+
scrollPrev: v,
|
|
112
|
+
scrollNext: b,
|
|
113
|
+
canScrollPrev: k,
|
|
114
|
+
canScrollNext: z
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
/* @__PURE__ */ e.createElement(
|
|
118
|
+
"div",
|
|
119
|
+
{
|
|
120
|
+
ref: S,
|
|
121
|
+
onKeyDownCapture: j,
|
|
122
|
+
className: s("relative", c),
|
|
123
|
+
role: "region",
|
|
124
|
+
"aria-roledescription": "carousel",
|
|
125
|
+
...E
|
|
126
|
+
},
|
|
127
|
+
u,
|
|
128
|
+
/* @__PURE__ */ e.createElement(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
className: s(
|
|
132
|
+
"relative w-full mt-8 rounded-full overflow-hidden",
|
|
133
|
+
i ? "lg:hidden" : "",
|
|
134
|
+
d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5",
|
|
135
|
+
g === "center" ? "mx-auto md:max-w-2xl" : "md:max-w-xl",
|
|
136
|
+
N
|
|
137
|
+
)
|
|
138
|
+
},
|
|
139
|
+
/* @__PURE__ */ e.createElement(
|
|
140
|
+
"div",
|
|
141
|
+
{
|
|
142
|
+
className: s(
|
|
143
|
+
"absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0",
|
|
144
|
+
d === "white" ? "bg-whitish" : "bg-navy"
|
|
145
|
+
),
|
|
146
|
+
style: {
|
|
147
|
+
transform: `translateX(${I - 100}%)`
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
),
|
|
152
|
+
/* @__PURE__ */ e.createElement(
|
|
153
|
+
"div",
|
|
154
|
+
{
|
|
155
|
+
className: s(
|
|
156
|
+
"embla__controls max-w-sm mt-6 flex gap-4",
|
|
157
|
+
i ? "lg:hidden" : "",
|
|
158
|
+
g === "center" ? "mx-auto flex justify-center" : ""
|
|
159
|
+
)
|
|
160
|
+
},
|
|
161
|
+
/* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(y, { className: x }), /* @__PURE__ */ e.createElement(C, { className: x }))
|
|
162
|
+
)
|
|
163
|
+
)
|
|
164
|
+
);
|
|
77
165
|
}
|
|
78
|
-
)
|
|
79
|
-
|
|
166
|
+
);
|
|
167
|
+
q.displayName = "Carousel";
|
|
168
|
+
const F = e.forwardRef(({ className: r, ...o }, l) => {
|
|
169
|
+
const { carouselRef: a, orientation: c } = h();
|
|
170
|
+
return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
|
|
171
|
+
"div",
|
|
172
|
+
{
|
|
173
|
+
ref: l,
|
|
174
|
+
className: s(
|
|
175
|
+
"flex",
|
|
176
|
+
c === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
|
|
177
|
+
r
|
|
178
|
+
),
|
|
179
|
+
...o
|
|
180
|
+
}
|
|
181
|
+
));
|
|
182
|
+
});
|
|
183
|
+
F.displayName = "CarouselContent";
|
|
184
|
+
const G = e.forwardRef(({ className: r, ...o }, l) => {
|
|
185
|
+
const { orientation: a } = h();
|
|
186
|
+
return /* @__PURE__ */ e.createElement(
|
|
187
|
+
"div",
|
|
188
|
+
{
|
|
189
|
+
ref: l,
|
|
190
|
+
role: "group",
|
|
191
|
+
"aria-roledescription": "slide",
|
|
192
|
+
className: s(
|
|
193
|
+
"min-w-0 shrink-0 grow-0 basis-full",
|
|
194
|
+
a === "horizontal" ? "pl-4" : "pt-4",
|
|
195
|
+
r
|
|
196
|
+
),
|
|
197
|
+
...o
|
|
198
|
+
}
|
|
199
|
+
);
|
|
200
|
+
});
|
|
201
|
+
G.displayName = "CarouselItem";
|
|
202
|
+
const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
203
|
+
const { orientation: u, scrollPrev: i, canScrollPrev: d } = h();
|
|
204
|
+
return /* @__PURE__ */ e.createElement(
|
|
205
|
+
p,
|
|
206
|
+
{
|
|
207
|
+
ref: c,
|
|
208
|
+
variant: o,
|
|
209
|
+
size: l,
|
|
210
|
+
className: s(
|
|
211
|
+
"absolute h-8 w-8 rounded-full",
|
|
212
|
+
u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
213
|
+
r
|
|
214
|
+
),
|
|
215
|
+
disabled: !d,
|
|
216
|
+
onClick: i,
|
|
217
|
+
...a
|
|
218
|
+
},
|
|
219
|
+
/* @__PURE__ */ e.createElement(K, { className: "h-5 w-5" }),
|
|
220
|
+
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
|
|
221
|
+
);
|
|
222
|
+
});
|
|
223
|
+
y.displayName = "CarouselPrevious";
|
|
224
|
+
const C = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
225
|
+
const { orientation: u, scrollNext: i, canScrollNext: d } = h();
|
|
226
|
+
return /* @__PURE__ */ e.createElement(
|
|
227
|
+
p,
|
|
228
|
+
{
|
|
229
|
+
ref: c,
|
|
230
|
+
variant: o,
|
|
231
|
+
size: l,
|
|
232
|
+
className: s(
|
|
233
|
+
"absolute h-8 w-8 rounded-full",
|
|
234
|
+
u === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
235
|
+
r
|
|
236
|
+
),
|
|
237
|
+
disabled: !d,
|
|
238
|
+
onClick: i,
|
|
239
|
+
...a
|
|
240
|
+
},
|
|
241
|
+
/* @__PURE__ */ e.createElement(L, { className: "h-5 w-5" }),
|
|
242
|
+
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
|
|
243
|
+
);
|
|
244
|
+
});
|
|
245
|
+
C.displayName = "CarouselNext";
|
|
80
246
|
export {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
l as CommandList,
|
|
87
|
-
i as CommandSeparator
|
|
247
|
+
q as Carousel,
|
|
248
|
+
F as CarouselContent,
|
|
249
|
+
G as CarouselItem,
|
|
250
|
+
C as CarouselNext,
|
|
251
|
+
y as CarouselPrevious
|
|
88
252
|
};
|
|
89
253
|
//# sourceMappingURL=index.es60.js.map
|