@iit/precision-ui 0.5.4 → 0.6.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 (43) hide show
  1. package/dist/Adapters.d.ts +1 -0
  2. package/dist/Adapters.d.ts.map +1 -1
  3. package/dist/components/GridIterator.d.ts +3 -2
  4. package/dist/components/GridIterator.d.ts.map +1 -1
  5. package/dist/components/cards/FeaturedCard.d.ts +1 -1
  6. package/dist/components/cards/FeaturedCard.d.ts.map +1 -1
  7. package/dist/components/ui/Link.d.ts +1 -1
  8. package/dist/components/ui/Link.d.ts.map +1 -1
  9. package/dist/components/ui/button/ButtonText.d.ts +1 -0
  10. package/dist/components/ui/button/ButtonText.d.ts.map +1 -1
  11. package/dist/components/ui/carousel.d.ts +5 -1
  12. package/dist/components/ui/carousel.d.ts.map +1 -1
  13. package/dist/components/ui/input/SearchInput.d.ts +1 -0
  14. package/dist/components/ui/input/SearchInput.d.ts.map +1 -1
  15. package/dist/decorators/CarouselWrapper.d.ts +3 -2
  16. package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
  17. package/dist/index.es22.js +97 -70
  18. package/dist/index.es22.js.map +1 -1
  19. package/dist/index.es25.js +47 -45
  20. package/dist/index.es25.js.map +1 -1
  21. package/dist/index.es39.js +18 -10
  22. package/dist/index.es39.js.map +1 -1
  23. package/dist/index.es40.js +14 -12
  24. package/dist/index.es40.js.map +1 -1
  25. package/dist/index.es42.js +26 -26
  26. package/dist/index.es42.js.map +1 -1
  27. package/dist/index.es43.js +1 -1
  28. package/dist/index.es43.js.map +1 -1
  29. package/dist/index.es45.js +21 -19
  30. package/dist/index.es45.js.map +1 -1
  31. package/dist/index.es46.js +117 -91
  32. package/dist/index.es46.js.map +1 -1
  33. package/dist/index.es6.js +35 -30
  34. package/dist/index.es6.js.map +1 -1
  35. package/dist/index.es8.js +10 -9
  36. package/dist/index.es8.js.map +1 -1
  37. package/dist/index.es9.js.map +1 -1
  38. package/dist/sections/CardsGridSection.d.ts +3 -2
  39. package/dist/sections/CardsGridSection.d.ts.map +1 -1
  40. package/dist/sections/Hero.d.ts +2 -0
  41. package/dist/sections/Hero.d.ts.map +1 -1
  42. package/dist/styles.css +132 -17
  43. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
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(
2
+ import D from "embla-carousel-react";
3
+ import { ChevronLeft as j, ChevronRight as B } from "lucide-react";
4
+ import { cn as i } from "./index.es31.js";
5
+ import { Slot as K } from "@radix-ui/react-slot";
6
+ import { cva as L } from "class-variance-authority";
7
+ const V = L(
8
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
9
  {
10
10
  variants: {
@@ -28,116 +28,142 @@ const A = j(
28
28
  }
29
29
  }
30
30
  ), g = e.forwardRef(
31
- ({ className: r, variant: o, size: a, asChild: l = !1, ...s }, c) => {
32
- const i = l ? I : "button";
31
+ ({ className: r, variant: o, size: l, asChild: a = !1, ...s }, u) => {
32
+ const c = a ? K : "button";
33
33
  return /* @__PURE__ */ e.createElement(
34
- i,
34
+ c,
35
35
  {
36
- className: d(A({ variant: o, size: a }), r),
37
- ref: c,
36
+ className: i(V({ variant: o, size: l }), r),
37
+ ref: u,
38
38
  ...s
39
39
  }
40
40
  );
41
41
  }
42
42
  );
43
43
  g.displayName = "Button";
44
- const h = e.createContext(null);
45
- function v() {
46
- const r = e.useContext(h);
44
+ const x = e.createContext(null);
45
+ function h() {
46
+ const r = e.useContext(x);
47
47
  if (!r)
48
48
  throw new Error("useCarousel must be used within a <Carousel />");
49
49
  return r;
50
50
  }
51
- const B = e.forwardRef(
51
+ const $ = e.forwardRef(
52
52
  ({
53
53
  orientation: r = "horizontal",
54
54
  opts: o,
55
- setApi: a,
56
- plugins: l,
55
+ setApi: l,
56
+ plugins: a,
57
57
  className: s,
58
- children: c,
59
- ...i
60
- }, f) => {
61
- const [N, t] = z(
58
+ children: u,
59
+ hideControlsOnDesktop: c = !1,
60
+ variant: d = "default",
61
+ ...C
62
+ }, N) => {
63
+ const [E, t] = D(
62
64
  {
63
65
  ...o,
64
66
  axis: r === "horizontal" ? "x" : "y"
65
67
  },
66
- l
67
- ), [w, C] = e.useState(!1), [E, S] = e.useState(!1), [P, k] = e.useState(0), m = e.useCallback(() => {
68
+ a
69
+ ), [S, P] = e.useState(!1), [k, R] = e.useState(!1), [z, _] = e.useState(0), m = e.useCallback(() => {
68
70
  if (!t)
69
71
  return;
70
72
  const n = t.scrollProgress();
71
- console.log("progress", n), k(n * 100);
72
- }, [t]), u = e.useCallback(
73
+ console.log("progress", n), _(n * 100);
74
+ }, [t]), f = e.useCallback(
73
75
  (n) => {
74
- n && (C(n.canScrollPrev()), S(n.canScrollNext()), m());
76
+ n && (P(n.canScrollPrev()), R(n.canScrollNext()), m());
75
77
  },
76
78
  [m]
77
- ), b = e.useCallback(() => {
79
+ ), v = e.useCallback(() => {
78
80
  t?.scrollPrev();
79
- }, [t]), p = e.useCallback(() => {
81
+ }, [t]), b = e.useCallback(() => {
80
82
  t?.scrollNext();
81
- }, [t]), R = e.useCallback(
83
+ }, [t]), I = e.useCallback(
82
84
  (n) => {
83
- n.key === "ArrowLeft" ? (n.preventDefault(), b()) : n.key === "ArrowRight" && (n.preventDefault(), p());
85
+ n.key === "ArrowLeft" ? (n.preventDefault(), v()) : n.key === "ArrowRight" && (n.preventDefault(), b());
84
86
  },
85
- [b, p]
87
+ [v, b]
86
88
  );
87
- return e.useEffect(() => {
88
- !t || !a || a(t);
89
- }, [t, a]), e.useEffect(() => {
89
+ e.useEffect(() => {
90
+ !t || !l || l(t);
91
+ }, [t, l]), e.useEffect(() => {
90
92
  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
+ return f(t), t.on("reInit", f), t.on("select", f), t.on("scroll", m), () => {
94
+ t?.off("reInit", f), t?.off("select", f), t?.off("scroll", m);
93
95
  };
94
- }, [t, u, m]), /* @__PURE__ */ e.createElement(
95
- h.Provider,
96
+ }, [t, f, m]);
97
+ const p = i(
98
+ "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",
99
+ d === "white" ? "hover:bg-whitish border-whitish-opacity-32" : "hover:bg-navy hover:text-white border-navy-opacity-32"
100
+ );
101
+ return /* @__PURE__ */ e.createElement(
102
+ x.Provider,
96
103
  {
97
104
  value: {
98
- carouselRef: N,
105
+ carouselRef: E,
99
106
  api: t,
100
107
  opts: o,
101
108
  orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
102
- scrollPrev: b,
103
- scrollNext: p,
104
- canScrollPrev: w,
105
- canScrollNext: E
109
+ scrollPrev: v,
110
+ scrollNext: b,
111
+ canScrollPrev: S,
112
+ canScrollNext: k
106
113
  }
107
114
  },
108
115
  /* @__PURE__ */ e.createElement(
109
116
  "div",
110
117
  {
111
- ref: f,
112
- onKeyDownCapture: R,
113
- className: d("relative", s),
118
+ ref: N,
119
+ onKeyDownCapture: I,
120
+ className: i("relative", s),
114
121
  role: "region",
115
122
  "aria-roledescription": "carousel",
116
- ...i
123
+ ...C
117
124
  },
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(
125
+ u,
126
+ /* @__PURE__ */ e.createElement(
120
127
  "div",
121
128
  {
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}%)`
129
+ className: i(
130
+ "relative w-full mt-8 rounded-full overflow-hidden md:max-w-2xl mx-auto",
131
+ c ? "lg:hidden" : "",
132
+ d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5"
133
+ )
134
+ },
135
+ /* @__PURE__ */ e.createElement(
136
+ "div",
137
+ {
138
+ className: i(
139
+ "absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0",
140
+ d === "white" ? "bg-whitish" : "bg-navy"
141
+ ),
142
+ style: {
143
+ transform: `translateX(${z - 100}%)`
144
+ }
125
145
  }
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" })))
146
+ )
147
+ ),
148
+ /* @__PURE__ */ e.createElement(
149
+ "div",
150
+ {
151
+ className: `embla__controls max-w-sm mx-auto mt-6 flex justify-center gap-4 ${c ? "lg:hidden" : ""}`
152
+ },
153
+ /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(w, { className: p }), /* @__PURE__ */ e.createElement(y, { className: p }))
154
+ )
129
155
  )
130
156
  );
131
157
  }
132
158
  );
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(
159
+ $.displayName = "Carousel";
160
+ const X = e.forwardRef(({ className: r, ...o }, l) => {
161
+ const { carouselRef: a, orientation: s } = h();
162
+ return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
137
163
  "div",
138
164
  {
139
- ref: a,
140
- className: d(
165
+ ref: l,
166
+ className: i(
141
167
  "flex",
142
168
  s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
143
169
  r
@@ -146,74 +172,74 @@ const K = e.forwardRef(({ className: r, ...o }, a) => {
146
172
  }
147
173
  ));
148
174
  });
149
- K.displayName = "CarouselContent";
150
- const L = e.forwardRef(({ className: r, ...o }, a) => {
151
- const { orientation: l } = v();
175
+ X.displayName = "CarouselContent";
176
+ const q = e.forwardRef(({ className: r, ...o }, l) => {
177
+ const { orientation: a } = h();
152
178
  return /* @__PURE__ */ e.createElement(
153
179
  "div",
154
180
  {
155
- ref: a,
181
+ ref: l,
156
182
  role: "group",
157
183
  "aria-roledescription": "slide",
158
- className: d(
184
+ className: i(
159
185
  "min-w-0 shrink-0 grow-0 basis-full",
160
- l === "horizontal" ? "pl-4" : "pt-4",
186
+ a === "horizontal" ? "pl-4" : "pt-4",
161
187
  r
162
188
  ),
163
189
  ...o
164
190
  }
165
191
  );
166
192
  });
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();
193
+ q.displayName = "CarouselItem";
194
+ const w = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, s) => {
195
+ const { orientation: u, scrollPrev: c, canScrollPrev: d } = h();
170
196
  return /* @__PURE__ */ e.createElement(
171
197
  g,
172
198
  {
173
199
  ref: s,
174
200
  variant: o,
175
- size: a,
176
- className: d(
201
+ size: l,
202
+ className: i(
177
203
  "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",
204
+ u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
179
205
  r
180
206
  ),
181
- disabled: !f,
182
- onClick: i,
183
- ...l
207
+ disabled: !d,
208
+ onClick: c,
209
+ ...a
184
210
  },
185
- /* @__PURE__ */ e.createElement(_, { className: "h-4 w-4" }),
211
+ /* @__PURE__ */ e.createElement(j, { className: "h-5 w-5" }),
186
212
  /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
187
213
  );
188
214
  });
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();
215
+ w.displayName = "CarouselPrevious";
216
+ const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, s) => {
217
+ const { orientation: u, scrollNext: c, canScrollNext: d } = h();
192
218
  return /* @__PURE__ */ e.createElement(
193
219
  g,
194
220
  {
195
221
  ref: s,
196
222
  variant: o,
197
- size: a,
198
- className: d(
223
+ size: l,
224
+ className: i(
199
225
  "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",
226
+ u === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
201
227
  r
202
228
  ),
203
- disabled: !f,
204
- onClick: i,
205
- ...l
229
+ disabled: !d,
230
+ onClick: c,
231
+ ...a
206
232
  },
207
- /* @__PURE__ */ e.createElement(D, { className: "h-4 w-4" }),
233
+ /* @__PURE__ */ e.createElement(B, { className: "h-5 w-5" }),
208
234
  /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
209
235
  );
210
236
  });
211
237
  y.displayName = "CarouselNext";
212
238
  export {
213
- B as Carousel,
214
- K as CarouselContent,
215
- L as CarouselItem,
239
+ $ as Carousel,
240
+ X as CarouselContent,
241
+ q as CarouselItem,
216
242
  y as CarouselNext,
217
- x as CarouselPrevious
243
+ w as CarouselPrevious
218
244
  };
219
245
  //# sourceMappingURL=index.es46.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es46.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.es46.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\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}\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 ...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 md:max-w-2xl mx-auto\",\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 )}\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={`embla__controls max-w-sm mx-auto mt-6 flex justify-center gap-4 ${\r\n hideControlsOnDesktop ? 'lg:hidden' : ''\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((_, 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 <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","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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"}
package/dist/index.es6.js CHANGED
@@ -1,10 +1,11 @@
1
- import t from "react";
2
- import { Button as s } from "./index.es2.js";
3
- import { LessLink16X16 as c, MoreLink16X16 as u, ArrowLinkRight16X16 as m } from "@iit/precision-ui-icons";
4
- import { cva as r } from "class-variance-authority";
1
+ import e from "react";
2
+ import { Button as m } from "./index.es2.js";
3
+ import { LessLink16X16 as d, MoreLink16X16 as f, ArrowLinkRight16X16 as h } from "@iit/precision-ui-icons";
4
+ import { cva as i } from "class-variance-authority";
5
5
  import { cn as n } from "./index.es31.js";
6
- import { ArrowDownToLine as d } from "lucide-react";
7
- const f = r("bg-link-gradient-container hover:cursor-pointer", {
6
+ import { ArrowDownToLine as p } from "lucide-react";
7
+ import { getAdapter as g } from "./index.es9.js";
8
+ const w = i("bg-link-gradient-container hover:cursor-pointer", {
8
9
  variants: {
9
10
  variant: {
10
11
  default: "text-navy",
@@ -14,7 +15,7 @@ const f = r("bg-link-gradient-container hover:cursor-pointer", {
14
15
  defaultVariants: {
15
16
  variant: "default"
16
17
  }
17
- }), p = r("rounded-full p-[5px]", {
18
+ }), v = i("rounded-full p-[8px]", {
18
19
  variants: {
19
20
  variant: {
20
21
  default: "bg-navy-opacity-4",
@@ -25,7 +26,7 @@ const f = r("bg-link-gradient-container hover:cursor-pointer", {
25
26
  defaultVariants: {
26
27
  variant: "default"
27
28
  }
28
- }), v = r("", {
29
+ }), E = i("", {
29
30
  variants: {
30
31
  variant: {
31
32
  default: "bg-link-gradient",
@@ -35,36 +36,40 @@ const f = r("bg-link-gradient-container hover:cursor-pointer", {
35
36
  defaultVariants: {
36
37
  variant: "default"
37
38
  }
38
- }), h = (e) => {
39
- switch (e) {
39
+ }), k = (a, t) => {
40
+ switch (a) {
40
41
  case "arrowRight":
41
- return /* @__PURE__ */ t.createElement(m, null);
42
+ return /* @__PURE__ */ e.createElement(h, { width: t, height: t });
42
43
  case "plus":
43
- return /* @__PURE__ */ t.createElement(u, null);
44
+ return /* @__PURE__ */ e.createElement(f, { width: t, height: t });
44
45
  case "minus":
45
- return /* @__PURE__ */ t.createElement(c, null);
46
+ return /* @__PURE__ */ e.createElement(d, { width: t, height: t });
46
47
  case "download":
47
- return /* @__PURE__ */ t.createElement(d, { size: 18 });
48
+ return /* @__PURE__ */ e.createElement(p, { size: 16, width: t, height: t });
48
49
  default:
49
50
  return null;
50
51
  }
51
- }, w = ({
52
- className: e,
53
- children: l,
54
- variant: a,
55
- icon: i,
52
+ }, x = ({
53
+ className: a,
54
+ children: t,
55
+ variant: r,
56
+ icon: o,
56
57
  // asChild = false,
57
- ...o
58
- }) => /* @__PURE__ */ t.createElement(
59
- s,
60
- {
61
- className: n(f({ variant: a, className: e })),
62
- asChild: !0,
63
- ...o
64
- },
65
- /* @__PURE__ */ t.createElement("div", { className: "gap-2 flex items-center" }, i && /* @__PURE__ */ t.createElement("div", { className: n(p({ variant: a })) }, h(i)), /* @__PURE__ */ t.createElement("div", { className: n(v({ variant: a })) }, l))
66
- ), L = w;
58
+ href: c,
59
+ ...s
60
+ }) => {
61
+ const u = g("LinkWrapper"), l = /* @__PURE__ */ e.createElement(
62
+ m,
63
+ {
64
+ className: n(w({ variant: r, className: a })),
65
+ asChild: !0,
66
+ ...s
67
+ },
68
+ /* @__PURE__ */ e.createElement("div", { className: "gap-2 flex items-center" }, o && /* @__PURE__ */ e.createElement("div", { className: n(v({ variant: r })) }, k(o, 16)), /* @__PURE__ */ e.createElement("div", { className: n(E({ variant: r })) }, t))
69
+ );
70
+ return c ? /* @__PURE__ */ e.createElement(u, { href: c, passHref: !0 }, l) : l;
71
+ }, C = x;
67
72
  export {
68
- L as default
73
+ C as default
69
74
  };
70
75
  //# sourceMappingURL=index.es6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es6.js","sources":["../src/components/ui/button/ButtonText.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Button } from './button'\r\nimport {\r\n ArrowLinkRight16X16,\r\n MoreLink16X16,\r\n LessLink16X16,\r\n} from '@iit/precision-ui-icons'\r\n\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { ArrowDownToLine } from 'lucide-react'\r\n\r\nconst buttonVariants = cva('bg-link-gradient-container hover:cursor-pointer', {\r\n variants: {\r\n variant: {\r\n default: 'text-navy',\r\n white: 'text-white',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nconst iconContainerVariants = cva('rounded-full p-[5px]', {\r\n variants: {\r\n variant: {\r\n default: 'bg-navy-opacity-4',\r\n // default: \"bg-red-500\",\r\n white: 'bg-whitish-opacity-8',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nconst textContainerVariants = cva('', {\r\n variants: {\r\n variant: {\r\n default: 'bg-link-gradient',\r\n white: 'bg-link-white-gradient',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nexport type ButtonTextIconName = 'arrowRight' | 'plus' | 'minus' | 'download'\r\n\r\nconst iconDefiner = (icon?: ButtonTextIconName) => {\r\n switch (icon) {\r\n case 'arrowRight':\r\n return <ArrowLinkRight16X16 />\r\n\r\n case 'plus':\r\n return <MoreLink16X16 />\r\n\r\n case 'minus':\r\n return <LessLink16X16 />\r\n\r\n case 'download':\r\n return <ArrowDownToLine size={18} />\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\ninterface NewProps {\r\n className?: string\r\n children?: React.ReactNode\r\n icon?: ButtonTextIconName\r\n asChild?: boolean\r\n}\r\n\r\nexport interface ButtonTextProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants>,\r\n NewProps {}\r\n\r\nexport interface ButtonTextPropsWithoutHTMLAttributes\r\n extends Omit<NewProps, 'children' | 'className'> {\r\n text: string\r\n}\r\n\r\nconst ButtonText: React.FC<ButtonTextProps> = ({\r\n className,\r\n children,\r\n variant,\r\n icon,\r\n // asChild = false,\r\n ...props\r\n}) => {\r\n return (\r\n <Button\r\n className={cn(buttonVariants({ variant, className }))}\r\n asChild\r\n {...props}\r\n >\r\n <div className=\"gap-2 flex items-center\">\r\n {icon && (\r\n <div className={cn(iconContainerVariants({ variant }))}>\r\n {iconDefiner(icon)}\r\n </div>\r\n )}\r\n <div className={cn(textContainerVariants({ variant }))}>{children}</div>\r\n </div>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default ButtonText\r\n"],"names":["buttonVariants","cva","iconContainerVariants","textContainerVariants","iconDefiner","icon","ArrowLinkRight16X16","MoreLink16X16","LessLink16X16","React","ArrowDownToLine","ButtonText","className","children","variant","props","Button","cn","ButtonText$1"],"mappings":";;;;;;AAYA,MAAMA,IAAiBC,EAAI,mDAAmD;AAAA,EAC5E,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEKC,IAAwBD,EAAI,wBAAwB;AAAA,EACxD,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA;AAAA,MAET,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEKE,IAAwBF,EAAI,IAAI;AAAA,EACpC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAIKG,IAAc,CAACC,MAA8B;AACjD,UAAQA,GAAM;AAAA,IACZ,KAAK;AACH,6CAAQC,GAAoB,IAAA;AAAA,IAE9B,KAAK;AACH,6CAAQC,GAAc,IAAA;AAAA,IAExB,KAAK;AACH,6CAAQC,GAAc,IAAA;AAAA,IAExB,KAAK;AACI,aAAAC,gBAAAA,EAAA,cAACC,GAAgB,EAAA,MAAM,GAAI,CAAA;AAAA,IAEpC;AACS,aAAA;AAAA,EACX;AACF,GAmBMC,IAAwC,CAAC;AAAA,EAC7C,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAT;AAAA;AAAA,EAEA,GAAGU;AACL,MAEIN,gBAAAA,EAAA;AAAA,EAACO;AAAA,EAAA;AAAA,IACC,WAAWC,EAAGjB,EAAe,EAAE,SAAAc,GAAS,WAAAF,EAAW,CAAA,CAAC;AAAA,IACpD,SAAO;AAAA,IACN,GAAGG;AAAA,EAAA;AAAA,EAEHN,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,0BAAA,GACZJ,KACCI,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAWQ,EAAGf,EAAsB,EAAE,SAAAY,EAAS,CAAA,CAAC,EAAA,GAClDV,EAAYC,CAAI,CACnB,GAEDI,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAWQ,EAAGd,EAAsB,EAAE,SAAAW,EAAS,CAAA,CAAC,EAAA,GAAID,CAAS,CACpE;AAAA,GAKNK,IAAeP;"}
1
+ {"version":3,"file":"index.es6.js","sources":["../src/components/ui/button/ButtonText.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Button } from './button'\r\nimport {\r\n ArrowLinkRight16X16,\r\n MoreLink16X16,\r\n LessLink16X16,\r\n} from '@iit/precision-ui-icons'\r\n\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { ArrowDownToLine } from 'lucide-react'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nconst buttonVariants = cva('bg-link-gradient-container hover:cursor-pointer', {\r\n variants: {\r\n variant: {\r\n default: 'text-navy',\r\n white: 'text-white',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nconst iconContainerVariants = cva('rounded-full p-[8px]', {\r\n variants: {\r\n variant: {\r\n default: 'bg-navy-opacity-4',\r\n // default: \"bg-red-500\",\r\n white: 'bg-whitish-opacity-8',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nconst textContainerVariants = cva('', {\r\n variants: {\r\n variant: {\r\n default: 'bg-link-gradient',\r\n white: 'bg-link-white-gradient',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\nexport type ButtonTextIconName = 'arrowRight' | 'plus' | 'minus' | 'download'\r\n\r\nconst iconDefiner = (icon?: ButtonTextIconName, size?: number) => {\r\n switch (icon) {\r\n case 'arrowRight':\r\n return <ArrowLinkRight16X16 width={size} height={size} />\r\n\r\n case 'plus':\r\n return <MoreLink16X16 width={size} height={size} />\r\n\r\n case 'minus':\r\n return <LessLink16X16 width={size} height={size} />\r\n\r\n case 'download':\r\n return <ArrowDownToLine size={16} width={size} height={size} />\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\ninterface NewProps {\r\n className?: string\r\n children?: React.ReactNode\r\n icon?: ButtonTextIconName\r\n asChild?: boolean\r\n href?: string\r\n}\r\n\r\nexport interface ButtonTextProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants>,\r\n NewProps {}\r\n\r\nexport interface ButtonTextPropsWithoutHTMLAttributes\r\n extends Omit<NewProps, 'children' | 'className'> {\r\n text: string\r\n}\r\n\r\nconst ButtonText: React.FC<ButtonTextProps> = ({\r\n className,\r\n children,\r\n variant,\r\n icon,\r\n // asChild = false,\r\n href,\r\n ...props\r\n}) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n const component = (\r\n <Button\r\n className={cn(buttonVariants({ variant, className }))}\r\n asChild\r\n {...props}\r\n >\r\n <div className=\"gap-2 flex items-center\">\r\n {icon && (\r\n <div className={cn(iconContainerVariants({ variant }))}>\r\n {iconDefiner(icon, 16)}\r\n </div>\r\n )}\r\n <div className={cn(textContainerVariants({ variant }))}>{children}</div>\r\n </div>\r\n </Button>\r\n )\r\n\r\n if (href) {\r\n return (\r\n <LinkWrapper href={href} passHref>\r\n {component}\r\n </LinkWrapper>\r\n )\r\n }\r\n\r\n return component\r\n}\r\n\r\nexport default ButtonText\r\n"],"names":["buttonVariants","cva","iconContainerVariants","textContainerVariants","iconDefiner","icon","size","React","ArrowLinkRight16X16","MoreLink16X16","LessLink16X16","ArrowDownToLine","ButtonText","className","children","variant","href","props","LinkWrapper","getAdapter","component","Button","cn","ButtonText$1"],"mappings":";;;;;;;AAaA,MAAMA,IAAiBC,EAAI,mDAAmD;AAAA,EAC5E,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEKC,IAAwBD,EAAI,wBAAwB;AAAA,EACxD,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA;AAAA,MAET,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEKE,IAAwBF,EAAI,IAAI;AAAA,EACpC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAIKG,IAAc,CAACC,GAA2BC,MAAkB;AAChE,UAAQD,GAAM;AAAA,IACZ,KAAK;AACH,aAAQE,gBAAAA,EAAA,cAAAC,GAAA,EAAoB,OAAOF,GAAM,QAAQA,EAAM,CAAA;AAAA,IAEzD,KAAK;AACH,aAAQC,gBAAAA,EAAA,cAAAE,GAAA,EAAc,OAAOH,GAAM,QAAQA,EAAM,CAAA;AAAA,IAEnD,KAAK;AACH,aAAQC,gBAAAA,EAAA,cAAAG,GAAA,EAAc,OAAOJ,GAAM,QAAQA,EAAM,CAAA;AAAA,IAEnD,KAAK;AACH,6CAAQK,GAAgB,EAAA,MAAM,IAAI,OAAOL,GAAM,QAAQA,EAAM,CAAA;AAAA,IAE/D;AACS,aAAA;AAAA,EACX;AACF,GAoBMM,IAAwC,CAAC;AAAA,EAC7C,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAV;AAAA;AAAA,EAEA,MAAAW;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAAC,IAAcC,EAAW,aAAa,GAEtCC,IACJb,gBAAAA,EAAA;AAAA,IAACc;AAAA,IAAA;AAAA,MACC,WAAWC,EAAGtB,EAAe,EAAE,SAAAe,GAAS,WAAAF,EAAW,CAAA,CAAC;AAAA,MACpD,SAAO;AAAA,MACN,GAAGI;AAAA,IAAA;AAAA,IAEHV,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,0BAAA,GACZF,KACCE,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAWe,EAAGpB,EAAsB,EAAE,SAAAa,GAAS,CAAC,EAAA,GAClDX,EAAYC,GAAM,EAAE,CACvB,GAEFE,gBAAAA,EAAA,cAAC,SAAI,WAAWe,EAAGnB,EAAsB,EAAE,SAAAY,EAAS,CAAA,CAAC,EAAA,GAAID,CAAS,CACpE;AAAA,EAAA;AAIJ,SAAIE,IAECT,gBAAAA,EAAA,cAAAW,GAAA,EAAY,MAAAF,GAAY,UAAQ,MAC9BI,CACH,IAIGA;AACT,GAEAG,IAAeX;"}
package/dist/index.es8.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import l from "react";
2
2
  import { cva as s } from "class-variance-authority";
3
3
  import { cn as c } from "./index.es31.js";
4
- import { getAdapter as f } from "./index.es9.js";
5
- const m = s("duration-200 transition-colors", {
4
+ import { getAdapter as v } from "./index.es9.js";
5
+ const f = s("duration-200 transition-colors", {
6
6
  variants: {
7
7
  variant: {
8
8
  default: "text-turquoise link",
9
9
  navy: "text-navy link_navy",
10
+ navy_light: "text-navy link_navy opacity-40 hover:opacity-60",
10
11
  white: "text-white link_white"
11
12
  }
12
13
  },
@@ -14,28 +15,28 @@ const m = s("duration-200 transition-colors", {
14
15
  variant: "default"
15
16
  }
16
17
  }), k = ({
17
- href: r,
18
+ href: a,
18
19
  children: n,
19
- className: a,
20
+ className: r,
20
21
  variant: e,
21
22
  target: t,
22
23
  rel: i,
23
24
  ...o
24
25
  }) => {
25
- const p = f("LinkWrapper");
26
+ const p = v("LinkWrapper");
26
27
  return /* @__PURE__ */ l.createElement(
27
28
  p,
28
29
  {
29
- href: r,
30
+ href: a,
30
31
  target: t,
31
32
  rel: i || (t === "_blank" ? "noopener noreferrer" : void 0),
32
- className: c(m({ variant: e, className: a })),
33
+ className: c(f({ variant: e, className: r })),
33
34
  ...o
34
35
  },
35
36
  n
36
37
  );
37
- }, x = k;
38
+ }, _ = k;
38
39
  export {
39
- x as default
40
+ _ as default
40
41
  };
41
42
  //# sourceMappingURL=index.es8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es8.js","sources":["../src/components/ui/Link.tsx"],"sourcesContent":["import React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nconst linkVariants = cva('duration-200 transition-colors', {\r\n variants: {\r\n variant: {\r\n default: 'text-turquoise link',\r\n navy: 'text-navy link_navy',\r\n white: 'text-white link_white',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\ninterface AppLinkProps\r\n extends React.HTMLAttributes<HTMLAnchorElement>,\r\n VariantProps<typeof linkVariants> {\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n}\r\n\r\nconst AppLink: React.FC<AppLinkProps> = ({\r\n href,\r\n children,\r\n className,\r\n variant,\r\n target,\r\n rel,\r\n ...props\r\n}) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n return (\r\n <LinkWrapper\r\n href={href}\r\n target={target}\r\n rel={rel || (target === '_blank' ? 'noopener noreferrer' : undefined)}\r\n className={cn(linkVariants({ variant, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </LinkWrapper>\r\n )\r\n}\r\n\r\nexport default AppLink\r\n"],"names":["linkVariants","cva","AppLink","href","children","className","variant","target","rel","props","LinkWrapper","getAdapter","React","cn","AppLink$1"],"mappings":";;;;AAKA,MAAMA,IAAeC,EAAI,kCAAkC;AAAA,EACzD,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAWKC,IAAkC,CAAC;AAAA,EACvC,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAAC,IAAcC,EAAW,aAAa;AAG1C,SAAAC,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,QAAAI;AAAA,MACA,KAAKC,MAAQD,MAAW,WAAW,wBAAwB;AAAA,MAC3D,WAAWM,EAAGb,EAAa,EAAE,SAAAM,GAAS,WAAAD,EAAW,CAAA,CAAC;AAAA,MACjD,GAAGI;AAAA,IAAA;AAAA,IAEHL;AAAA,EAAA;AAGP,GAEAU,IAAeZ;"}
1
+ {"version":3,"file":"index.es8.js","sources":["../src/components/ui/Link.tsx"],"sourcesContent":["import React from 'react'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\nconst linkVariants = cva('duration-200 transition-colors', {\r\n variants: {\r\n variant: {\r\n default: 'text-turquoise link',\r\n navy: 'text-navy link_navy',\r\n navy_light: 'text-navy link_navy opacity-40 hover:opacity-60',\r\n white: 'text-white link_white',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\ninterface AppLinkProps\r\n extends React.HTMLAttributes<HTMLAnchorElement>,\r\n VariantProps<typeof linkVariants> {\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n}\r\n\r\nconst AppLink: React.FC<AppLinkProps> = ({\r\n href,\r\n children,\r\n className,\r\n variant,\r\n target,\r\n rel,\r\n ...props\r\n}) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n return (\r\n <LinkWrapper\r\n href={href}\r\n target={target}\r\n rel={rel || (target === '_blank' ? 'noopener noreferrer' : undefined)}\r\n className={cn(linkVariants({ variant, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </LinkWrapper>\r\n )\r\n}\r\n\r\nexport default AppLink\r\n"],"names":["linkVariants","cva","AppLink","href","children","className","variant","target","rel","props","LinkWrapper","getAdapter","React","cn","AppLink$1"],"mappings":";;;;AAKA,MAAMA,IAAeC,EAAI,kCAAkC;AAAA,EACzD,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAWKC,IAAkC,CAAC;AAAA,EACvC,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAAC,IAAcC,EAAW,aAAa;AAG1C,SAAAC,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,QAAAI;AAAA,MACA,KAAKC,MAAQD,MAAW,WAAW,wBAAwB;AAAA,MAC3D,WAAWM,EAAGb,EAAa,EAAE,SAAAM,GAAS,WAAAD,EAAW,CAAA,CAAC;AAAA,MACjD,GAAGI;AAAA,IAAA;AAAA,IAEHL;AAAA,EAAA;AAGP,GAEAU,IAAeZ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es9.js","sources":["../src/Adapters.tsx"],"sourcesContent":["type ComponentAdapter<TProps = unknown> = React.FC<TProps>\r\n\r\ninterface Adapters {\r\n LinkWrapper?: ComponentAdapter<{\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n rel?: string\r\n }>\r\n ImageWrapper?: ComponentAdapter<{\r\n src: string\r\n alt: string\r\n width?: number\r\n height?: number\r\n className?: string\r\n objectFit?: string\r\n }>\r\n // CarouselWrapper?: ComponentAdapter<{\r\n // items: unknown[]\r\n // renderItem: (item: unknown, index: number) => React.ReactNode\r\n // columns: number\r\n // showControlsOnDesktop: boolean\r\n // className?: string\r\n // }>\r\n}\r\n\r\nconst adapters: Adapters = {}\r\n\r\nexport const registerAdapter = <T extends keyof Adapters>(\r\n key: T,\r\n adapter: NonNullable<Adapters[T]>\r\n) => {\r\n adapters[key] = adapter\r\n}\r\n\r\nexport const getAdapter = <T extends keyof Adapters>(\r\n key: T\r\n): NonNullable<Adapters[T]> => {\r\n const adapter = adapters[key]\r\n if (!adapter) {\r\n throw new Error(`Adapter for ${key} is not registered.`)\r\n }\r\n return adapter\r\n}\r\n"],"names":["adapters","registerAdapter","key","adapter","getAdapter"],"mappings":"AA2BA,MAAMA,IAAqB,CAAA,GAEdC,IAAkB,CAC7BC,GACAC,MACG;AACH,EAAAH,EAASE,CAAG,IAAIC;AAClB,GAEaC,IAAa,CACxBF,MAC6B;AACvB,QAAAC,IAAUH,EAASE,CAAG;AAC5B,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,eAAeD,CAAG,qBAAqB;AAElD,SAAAC;AACT;"}
1
+ {"version":3,"file":"index.es9.js","sources":["../src/Adapters.tsx"],"sourcesContent":["type ComponentAdapter<TProps = unknown> = React.FC<TProps>\r\n\r\ninterface Adapters {\r\n LinkWrapper?: ComponentAdapter<{\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n rel?: string\r\n passHref?: boolean\r\n }>\r\n ImageWrapper?: ComponentAdapter<{\r\n src: string\r\n alt: string\r\n width?: number\r\n height?: number\r\n className?: string\r\n objectFit?: string\r\n }>\r\n // CarouselWrapper?: ComponentAdapter<{\r\n // items: unknown[]\r\n // renderItem: (item: unknown, index: number) => React.ReactNode\r\n // columns: number\r\n // hideControlsOnDesktop: boolean\r\n // className?: string\r\n // }>\r\n}\r\n\r\nconst adapters: Adapters = {}\r\n\r\nexport const registerAdapter = <T extends keyof Adapters>(\r\n key: T,\r\n adapter: NonNullable<Adapters[T]>\r\n) => {\r\n adapters[key] = adapter\r\n}\r\n\r\nexport const getAdapter = <T extends keyof Adapters>(\r\n key: T\r\n): NonNullable<Adapters[T]> => {\r\n const adapter = adapters[key]\r\n if (!adapter) {\r\n throw new Error(`Adapter for ${key} is not registered.`)\r\n }\r\n return adapter\r\n}\r\n"],"names":["adapters","registerAdapter","key","adapter","getAdapter"],"mappings":"AA4BA,MAAMA,IAAqB,CAAA,GAEdC,IAAkB,CAC7BC,GACAC,MACG;AACH,EAAAH,EAASE,CAAG,IAAIC;AAClB,GAEaC,IAAa,CACxBF,MAC6B;AACvB,QAAAC,IAAUH,EAASE,CAAG;AAC5B,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,eAAeD,CAAG,qBAAqB;AAElD,SAAAC;AACT;"}