@iit/precision-ui 0.5.4 → 0.5.5

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.
@@ -1,62 +1,64 @@
1
- import A from "./index.es24.js";
1
+ import E from "./index.es24.js";
2
2
  import e from "./index.es37.js";
3
- import E from "./index.es38.js";
4
- import G from "./index.es39.js";
5
- import R from "./index.es40.js";
6
- import S from "./index.es41.js";
7
- import I from "./index.es42.js";
8
- import _ from "./index.es43.js";
3
+ import G from "./index.es38.js";
4
+ import R from "./index.es39.js";
5
+ import S from "./index.es40.js";
6
+ import I from "./index.es41.js";
7
+ import _ from "./index.es42.js";
8
+ import k from "./index.es43.js";
9
9
  import t from "react";
10
- const k = {
10
+ const x = {
11
11
  Advantage: e,
12
- Advantage2: E,
13
- Rate: _,
14
- Product: I,
15
- FeaturedCard: G,
16
- Plate: S
17
- }, x = ({
12
+ Advantage2: G,
13
+ Rate: k,
14
+ Product: _,
15
+ FeaturedCard: R,
16
+ Plate: I
17
+ }, y = ({
18
18
  title: r,
19
- desc: o,
20
- items: a,
21
- component: m = "Advantage",
22
- withoutTopPadding: n = !1,
23
- withTopMargin: d = !1,
24
- withBottomMargin: f = !1,
25
- withoutBottomPadding: i = !1,
26
- variant: c,
27
- corners: p,
28
- columns: l,
29
- showControlsOnDesktop: s,
30
- withoutCarousel: C,
31
- footnote: u
19
+ sectionId: o,
20
+ desc: a,
21
+ items: m,
22
+ component: n = "Advantage",
23
+ withoutTopPadding: d = !1,
24
+ withTopMargin: f = !1,
25
+ withBottomMargin: i = !1,
26
+ withoutBottomPadding: c = !1,
27
+ variant: p,
28
+ corners: l,
29
+ columns: s,
30
+ showControlsOnDesktop: C,
31
+ withoutCarousel: u,
32
+ footnote: P
32
33
  }) => {
33
- const P = k[m] || e;
34
+ const g = x[n] || e;
34
35
  return /* @__PURE__ */ t.createElement(
35
- A,
36
+ E,
36
37
  {
37
38
  title: r,
38
- desc: o,
39
- variant: c,
40
- corners: p,
41
- withoutTopPadding: n,
42
- withTopMargin: d,
43
- withBottomMargin: f,
44
- withoutBottomPadding: i
39
+ sectionId: o,
40
+ desc: a,
41
+ variant: p,
42
+ corners: l,
43
+ withoutTopPadding: d,
44
+ withTopMargin: f,
45
+ withBottomMargin: i,
46
+ withoutBottomPadding: c
45
47
  },
46
48
  /* @__PURE__ */ t.createElement(
47
- R,
49
+ S,
48
50
  {
49
- items: a,
50
- columns: l,
51
- showControlsOnDesktop: s,
52
- withoutCarousel: C,
53
- renderItem: (g, v) => /* @__PURE__ */ t.createElement(P, { key: v, ...g }),
54
- footnote: u
51
+ items: m,
52
+ columns: s,
53
+ showControlsOnDesktop: C,
54
+ withoutCarousel: u,
55
+ renderItem: (v, A) => /* @__PURE__ */ t.createElement(g, { key: A, ...v }),
56
+ footnote: P
55
57
  }
56
58
  )
57
59
  );
58
- }, z = x;
60
+ }, B = y;
59
61
  export {
60
- z as default
62
+ B as default
61
63
  };
62
64
  //# sourceMappingURL=index.es25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es25.js","sources":["../src/sections/CardsGridSection.tsx"],"sourcesContent":["import Section, { SectionProps } from './Section'\r\n\r\nimport Advantage from '@/components/cards/Advantage'\r\nimport Advantage2 from '@/components/cards/Advantage2'\r\nimport FeaturedCard from '@/components/cards/FeaturedCard'\r\nimport GridIterator from '@/components/GridIterator'\r\nimport Plate from '@/components/cards/Plate'\r\nimport Product from '@/components/cards/Product'\r\nimport Rate from '@/components/cards/Rate'\r\nimport React from 'react'\r\n\r\n// Map component names to actual components\r\nconst componentMap: { [key: string]: React.ElementType } = {\r\n Advantage,\r\n Advantage2,\r\n Rate,\r\n Product,\r\n FeaturedCard,\r\n Plate,\r\n}\r\n\r\ninterface CardsGridSectionProps<T> {\r\n title: string\r\n desc?: string\r\n items: T[]\r\n component?: string\r\n withoutTopPadding?: boolean\r\n withoutBottomPadding?: boolean\r\n withTopMargin?: boolean\r\n withBottomMargin?: boolean\r\n variant?: SectionProps['variant']\r\n corners?: SectionProps['corners']\r\n columns?: number\r\n showControlsOnDesktop?: boolean\r\n withoutCarousel?: boolean\r\n footnote?: string\r\n}\r\n\r\nconst CardsGridSection = <T,>({\r\n title,\r\n desc,\r\n items,\r\n component = 'Advantage',\r\n withoutTopPadding = false,\r\n withTopMargin = false,\r\n withBottomMargin = false,\r\n withoutBottomPadding = false,\r\n variant,\r\n corners,\r\n columns,\r\n showControlsOnDesktop,\r\n withoutCarousel,\r\n footnote,\r\n}: CardsGridSectionProps<T>) => {\r\n const Component = componentMap[component] || Advantage\r\n\r\n return (\r\n <Section\r\n title={title}\r\n desc={desc}\r\n variant={variant}\r\n corners={corners}\r\n withoutTopPadding={withoutTopPadding}\r\n withTopMargin={withTopMargin}\r\n withBottomMargin={withBottomMargin}\r\n withoutBottomPadding={withoutBottomPadding}\r\n >\r\n <GridIterator\r\n items={items}\r\n columns={columns}\r\n showControlsOnDesktop={showControlsOnDesktop}\r\n withoutCarousel={withoutCarousel}\r\n renderItem={(item, index) => <Component key={index} {...item} />}\r\n footnote={footnote}\r\n />\r\n </Section>\r\n )\r\n}\r\n\r\nexport default CardsGridSection\r\n"],"names":["componentMap","Advantage","Advantage2","Rate","Product","FeaturedCard","Plate","CardsGridSection","title","desc","items","component","withoutTopPadding","withTopMargin","withBottomMargin","withoutBottomPadding","variant","corners","columns","showControlsOnDesktop","withoutCarousel","footnote","Component","React","Section","GridIterator","item","index","CardsGridSection$1"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAqD;AAAA,EACzD,WAAAC;AAAA,EACA,YAAAC;AAAA,EAAA,MACAC;AAAAA,EAAA,SACAC;AAAAA,EACA,cAAAC;AAAA,EAAA,OACAC;AACF,GAmBMC,IAAmB,CAAK;AAAA,EAC5B,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,mBAAAC,IAAoB;AAAA,EACpB,eAAAC,IAAgB;AAAA,EAChB,kBAAAC,IAAmB;AAAA,EACnB,sBAAAC,IAAuB;AAAA,EACvB,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAgC;AACxB,QAAAC,IAAYtB,EAAaW,CAAS,KAAKV;AAG3C,SAAAsB,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAhB;AAAA,MACA,MAAAC;AAAA,MACA,SAAAO;AAAA,MACA,SAAAC;AAAA,MACA,mBAAAL;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,sBAAAC;AAAA,IAAA;AAAA,IAEAQ,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,SAAAQ;AAAA,QACA,uBAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,YAAY,CAACM,GAAMC,sCAAWL,GAAU,EAAA,KAAKK,GAAQ,GAAGD,EAAM,CAAA;AAAA,QAC9D,UAAAL;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAEAO,IAAerB;"}
1
+ {"version":3,"file":"index.es25.js","sources":["../src/sections/CardsGridSection.tsx"],"sourcesContent":["import Section, { SectionProps } from './Section'\r\n\r\nimport Advantage from '@/components/cards/Advantage'\r\nimport Advantage2 from '@/components/cards/Advantage2'\r\nimport FeaturedCard from '@/components/cards/FeaturedCard'\r\nimport GridIterator from '@/components/GridIterator'\r\nimport Plate from '@/components/cards/Plate'\r\nimport Product from '@/components/cards/Product'\r\nimport Rate from '@/components/cards/Rate'\r\nimport React from 'react'\r\n\r\n// Map component names to actual components\r\nconst componentMap: { [key: string]: React.ElementType } = {\r\n Advantage,\r\n Advantage2,\r\n Rate,\r\n Product,\r\n FeaturedCard,\r\n Plate,\r\n}\r\n\r\ninterface CardsGridSectionProps<T> {\r\n title: string\r\n sectionId?: string\r\n desc?: string\r\n items: T[]\r\n component?: string\r\n withoutTopPadding?: boolean\r\n withoutBottomPadding?: boolean\r\n withTopMargin?: boolean\r\n withBottomMargin?: boolean\r\n variant?: SectionProps['variant']\r\n corners?: SectionProps['corners']\r\n columns?: number\r\n showControlsOnDesktop?: boolean\r\n withoutCarousel?: boolean\r\n footnote?: string\r\n}\r\n\r\nconst CardsGridSection = <T,>({\r\n title,\r\n sectionId,\r\n desc,\r\n items,\r\n component = 'Advantage',\r\n withoutTopPadding = false,\r\n withTopMargin = false,\r\n withBottomMargin = false,\r\n withoutBottomPadding = false,\r\n variant,\r\n corners,\r\n columns,\r\n showControlsOnDesktop,\r\n withoutCarousel,\r\n footnote,\r\n}: CardsGridSectionProps<T>) => {\r\n const Component = componentMap[component] || Advantage\r\n\r\n return (\r\n <Section\r\n title={title}\r\n sectionId={sectionId}\r\n desc={desc}\r\n variant={variant}\r\n corners={corners}\r\n withoutTopPadding={withoutTopPadding}\r\n withTopMargin={withTopMargin}\r\n withBottomMargin={withBottomMargin}\r\n withoutBottomPadding={withoutBottomPadding}\r\n >\r\n <GridIterator\r\n items={items}\r\n columns={columns}\r\n showControlsOnDesktop={showControlsOnDesktop}\r\n withoutCarousel={withoutCarousel}\r\n renderItem={(item, index) => <Component key={index} {...item} />}\r\n footnote={footnote}\r\n />\r\n </Section>\r\n )\r\n}\r\n\r\nexport default CardsGridSection\r\n"],"names":["componentMap","Advantage","Advantage2","Rate","Product","FeaturedCard","Plate","CardsGridSection","title","sectionId","desc","items","component","withoutTopPadding","withTopMargin","withBottomMargin","withoutBottomPadding","variant","corners","columns","showControlsOnDesktop","withoutCarousel","footnote","Component","React","Section","GridIterator","item","index","CardsGridSection$1"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAqD;AAAA,EACzD,WAAAC;AAAA,EACA,YAAAC;AAAA,EAAA,MACAC;AAAAA,EAAA,SACAC;AAAAA,EACA,cAAAC;AAAA,EAAA,OACAC;AACF,GAoBMC,IAAmB,CAAK;AAAA,EAC5B,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,mBAAAC,IAAoB;AAAA,EACpB,eAAAC,IAAgB;AAAA,EAChB,kBAAAC,IAAmB;AAAA,EACnB,sBAAAC,IAAuB;AAAA,EACvB,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAgC;AACxB,QAAAC,IAAYvB,EAAaY,CAAS,KAAKX;AAG3C,SAAAuB,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAjB;AAAA,MACA,WAAAC;AAAA,MACA,MAAAC;AAAA,MACA,SAAAO;AAAA,MACA,SAAAC;AAAA,MACA,mBAAAL;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,sBAAAC;AAAA,IAAA;AAAA,IAEAQ,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,SAAAQ;AAAA,QACA,uBAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,YAAY,CAACM,GAAMC,sCAAWL,GAAU,EAAA,KAAKK,GAAQ,GAAGD,EAAM,CAAA;AAAA,QAC9D,UAAAL;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GAEAO,IAAetB;"}
@@ -1,4 +1,4 @@
1
- import m from "./index.es47.js";
1
+ import m from "./index.es46.js";
2
2
  import e from "react";
3
3
  const s = ({ list: t }) => /* @__PURE__ */ e.createElement("ul", { className: "breadcrumbs space-y-2" }, t.map((a, r) => /* @__PURE__ */ e.createElement(
4
4
  "li",
@@ -1,4 +1,4 @@
1
- import { Carousel as c, CarouselContent as n, CarouselItem as i, CarouselPrevious as p, CarouselNext as f } from "./index.es46.js";
1
+ import { Carousel as c, CarouselContent as n, CarouselItem as i, CarouselPrevious as p, CarouselNext as f } from "./index.es47.js";
2
2
  import e from "react";
3
3
  import { cn as C } from "./index.es31.js";
4
4
  const d = ({
@@ -1,219 +1,19 @@
1
- import e from "react";
2
- import z from "embla-carousel-react";
3
- import { ArrowLeft as _, ArrowRight as D } from "lucide-react";
4
- import { cn as d } from "./index.es31.js";
5
- import { Slot as I } from "@radix-ui/react-slot";
6
- import { cva as j } from "class-variance-authority";
7
- const A = j(
8
- "inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none",
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
- ), g = e.forwardRef(
31
- ({ className: r, variant: o, size: a, asChild: l = !1, ...s }, c) => {
32
- const i = l ? I : "button";
33
- return /* @__PURE__ */ e.createElement(
34
- i,
35
- {
36
- className: d(A({ variant: o, size: a }), r),
37
- ref: c,
38
- ...s
39
- }
40
- );
41
- }
42
- );
43
- g.displayName = "Button";
44
- const h = e.createContext(null);
45
- function v() {
46
- const r = e.useContext(h);
47
- if (!r)
48
- throw new Error("useCarousel must be used within a <Carousel />");
49
- return r;
50
- }
51
- const B = e.forwardRef(
52
- ({
53
- orientation: r = "horizontal",
54
- opts: o,
55
- setApi: a,
56
- plugins: l,
57
- className: s,
58
- children: c,
59
- ...i
60
- }, f) => {
61
- const [N, t] = z(
62
- {
63
- ...o,
64
- axis: r === "horizontal" ? "x" : "y"
65
- },
66
- l
67
- ), [w, C] = e.useState(!1), [E, S] = e.useState(!1), [P, k] = e.useState(0), m = e.useCallback(() => {
68
- if (!t)
69
- return;
70
- const n = t.scrollProgress();
71
- console.log("progress", n), k(n * 100);
72
- }, [t]), u = e.useCallback(
73
- (n) => {
74
- n && (C(n.canScrollPrev()), S(n.canScrollNext()), m());
75
- },
76
- [m]
77
- ), b = e.useCallback(() => {
78
- t?.scrollPrev();
79
- }, [t]), p = e.useCallback(() => {
80
- t?.scrollNext();
81
- }, [t]), R = e.useCallback(
82
- (n) => {
83
- n.key === "ArrowLeft" ? (n.preventDefault(), b()) : n.key === "ArrowRight" && (n.preventDefault(), p());
84
- },
85
- [b, p]
86
- );
87
- return e.useEffect(() => {
88
- !t || !a || a(t);
89
- }, [t, a]), e.useEffect(() => {
90
- if (t)
91
- return u(t), t.on("reInit", u), t.on("select", u), t.on("scroll", m), () => {
92
- t?.off("reInit", u), t?.off("select", u), t?.off("scroll", m);
93
- };
94
- }, [t, u, m]), /* @__PURE__ */ e.createElement(
95
- h.Provider,
96
- {
97
- value: {
98
- carouselRef: N,
99
- api: t,
100
- opts: o,
101
- orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
102
- scrollPrev: b,
103
- scrollNext: p,
104
- canScrollPrev: w,
105
- canScrollNext: E
106
- }
107
- },
108
- /* @__PURE__ */ e.createElement(
109
- "div",
110
- {
111
- ref: f,
112
- onKeyDownCapture: R,
113
- className: d("relative", s),
114
- role: "region",
115
- "aria-roledescription": "carousel",
116
- ...i
117
- },
118
- c,
119
- /* @__PURE__ */ e.createElement("div", { className: "relative w-full mt-4 h-1 bg-navy-opacity-16 rounded-full overflow-hidden md:max-w-3xl mx-auto" }, /* @__PURE__ */ e.createElement(
120
- "div",
121
- {
122
- className: "absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0",
123
- style: {
124
- transform: `translateX(${P - 100}%)`
125
- }
126
- }
127
- )),
128
- /* @__PURE__ */ e.createElement("div", { className: "embla__controls max-w-sm mx-auto mt-5 flex justify-center gap-4" }, /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(x, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" }), /* @__PURE__ */ e.createElement(y, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" })))
129
- )
130
- );
131
- }
132
- );
133
- B.displayName = "Carousel";
134
- const K = e.forwardRef(({ className: r, ...o }, a) => {
135
- const { carouselRef: l, orientation: s } = v();
136
- return /* @__PURE__ */ e.createElement("div", { ref: l, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
137
- "div",
138
- {
139
- ref: a,
140
- className: d(
141
- "flex",
142
- s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
143
- r
144
- ),
145
- ...o
146
- }
147
- ));
148
- });
149
- K.displayName = "CarouselContent";
150
- const L = e.forwardRef(({ className: r, ...o }, a) => {
151
- const { orientation: l } = v();
152
- return /* @__PURE__ */ e.createElement(
153
- "div",
154
- {
155
- ref: a,
156
- role: "group",
157
- "aria-roledescription": "slide",
158
- className: d(
159
- "min-w-0 shrink-0 grow-0 basis-full",
160
- l === "horizontal" ? "pl-4" : "pt-4",
161
- r
162
- ),
163
- ...o
164
- }
165
- );
166
- });
167
- L.displayName = "CarouselItem";
168
- const x = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
169
- const { orientation: c, scrollPrev: i, canScrollPrev: f } = v();
170
- return /* @__PURE__ */ e.createElement(
171
- g,
1
+ import t from "react";
2
+ import a from "./index.es27.js";
3
+ import { getAdapter as o } from "./index.es9.js";
4
+ import i from "./index.es48.js";
5
+ const l = ({ title: e, href: r }) => {
6
+ const m = o("LinkWrapper");
7
+ return r ? /* @__PURE__ */ t.createElement(a, { variant: "small-body", className: "text-whitish-opacity-32" }, /* @__PURE__ */ t.createElement(
8
+ m,
172
9
  {
173
- ref: s,
174
- variant: o,
175
- size: a,
176
- className: d(
177
- "absolute h-8 w-8 rounded-full",
178
- c === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
179
- r
180
- ),
181
- disabled: !f,
182
- onClick: i,
183
- ...l
10
+ href: r,
11
+ className: "breadcrumb hover:text-whitish-opacity-60 duration-200"
184
12
  },
185
- /* @__PURE__ */ e.createElement(_, { className: "h-4 w-4" }),
186
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
187
- );
188
- });
189
- x.displayName = "CarouselPrevious";
190
- const y = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
191
- const { orientation: c, scrollNext: i, canScrollNext: f } = v();
192
- return /* @__PURE__ */ e.createElement(
193
- g,
194
- {
195
- ref: s,
196
- variant: o,
197
- size: a,
198
- className: d(
199
- "absolute h-8 w-8 rounded-full",
200
- c === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
201
- r
202
- ),
203
- disabled: !f,
204
- onClick: i,
205
- ...l
206
- },
207
- /* @__PURE__ */ e.createElement(D, { className: "h-4 w-4" }),
208
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
209
- );
210
- });
211
- y.displayName = "CarouselNext";
13
+ i(e, 55)
14
+ )) : /* @__PURE__ */ t.createElement(a, { variant: "link", className: "text-whitish breadcrumb" }, i(e, 55));
15
+ };
212
16
  export {
213
- B as Carousel,
214
- K as CarouselContent,
215
- L as CarouselItem,
216
- y as CarouselNext,
217
- x as CarouselPrevious
17
+ l as default
218
18
  };
219
19
  //# 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/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import React from 'react'\r\nimport Text from '../core/typography/Text'\r\nimport { getAdapter } from '@/Adapters'\r\nimport truncateText from '@/lib/utils/truncateText'\r\n\r\nexport interface BreadcrumbProps {\r\n title: string\r\n href?: string\r\n}\r\n\r\nconst Breadcrumb: React.FC<BreadcrumbProps> = ({ title, href }) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n if (!href)\r\n return (\r\n <Text variant=\"link\" className=\"text-whitish breadcrumb\">\r\n {truncateText(title, 55)}\r\n </Text>\r\n )\r\n\r\n return (\r\n <Text variant=\"small-body\" className=\"text-whitish-opacity-32\">\r\n <LinkWrapper\r\n href={href}\r\n className=\"breadcrumb hover:text-whitish-opacity-60 duration-200\"\r\n >\r\n {truncateText(title, 55)}\r\n </LinkWrapper>\r\n </Text>\r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n"],"names":["Breadcrumb","title","href","LinkWrapper","getAdapter","React","Text","truncateText"],"mappings":";;;;AAUA,MAAMA,IAAwC,CAAC,EAAE,OAAAC,GAAO,MAAAC,QAAW;AAC3D,QAAAC,IAAcC,EAAW,aAAa;AAE5C,SAAKF,IAQFG,gBAAAA,EAAA,cAAAC,GAAA,EAAK,SAAQ,cAAa,WAAU,6BACnCD,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAAD;AAAA,MACA,WAAU;AAAA,IAAA;AAAA,IAETK,EAAaN,GAAO,EAAE;AAAA,EAAA,CAE3B,IAbEI,gBAAAA,EAAA,cAACC,KAAK,SAAQ,QAAO,WAAU,0BAC5B,GAAAC,EAAaN,GAAO,EAAE,CACzB;AAaN;"}
@@ -1,19 +1,219 @@
1
- import t from "react";
2
- import a from "./index.es27.js";
3
- import { getAdapter as o } from "./index.es9.js";
4
- import i from "./index.es48.js";
5
- const l = ({ title: e, href: r }) => {
6
- const m = o("LinkWrapper");
7
- return r ? /* @__PURE__ */ t.createElement(a, { variant: "small-body", className: "text-whitish-opacity-32" }, /* @__PURE__ */ t.createElement(
8
- m,
1
+ import e from "react";
2
+ import z from "embla-carousel-react";
3
+ import { ArrowLeft as _, ArrowRight as D } from "lucide-react";
4
+ import { cn as d } from "./index.es31.js";
5
+ import { Slot as I } from "@radix-ui/react-slot";
6
+ import { cva as j } from "class-variance-authority";
7
+ const A = j(
8
+ "inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none",
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
+ ), g = e.forwardRef(
31
+ ({ className: r, variant: o, size: a, asChild: l = !1, ...s }, c) => {
32
+ const i = l ? I : "button";
33
+ return /* @__PURE__ */ e.createElement(
34
+ i,
35
+ {
36
+ className: d(A({ variant: o, size: a }), r),
37
+ ref: c,
38
+ ...s
39
+ }
40
+ );
41
+ }
42
+ );
43
+ g.displayName = "Button";
44
+ const h = e.createContext(null);
45
+ function v() {
46
+ const r = e.useContext(h);
47
+ if (!r)
48
+ throw new Error("useCarousel must be used within a <Carousel />");
49
+ return r;
50
+ }
51
+ const B = e.forwardRef(
52
+ ({
53
+ orientation: r = "horizontal",
54
+ opts: o,
55
+ setApi: a,
56
+ plugins: l,
57
+ className: s,
58
+ children: c,
59
+ ...i
60
+ }, f) => {
61
+ const [N, t] = z(
62
+ {
63
+ ...o,
64
+ axis: r === "horizontal" ? "x" : "y"
65
+ },
66
+ l
67
+ ), [w, C] = e.useState(!1), [E, S] = e.useState(!1), [P, k] = e.useState(0), m = e.useCallback(() => {
68
+ if (!t)
69
+ return;
70
+ const n = t.scrollProgress();
71
+ console.log("progress", n), k(n * 100);
72
+ }, [t]), u = e.useCallback(
73
+ (n) => {
74
+ n && (C(n.canScrollPrev()), S(n.canScrollNext()), m());
75
+ },
76
+ [m]
77
+ ), b = e.useCallback(() => {
78
+ t?.scrollPrev();
79
+ }, [t]), p = e.useCallback(() => {
80
+ t?.scrollNext();
81
+ }, [t]), R = e.useCallback(
82
+ (n) => {
83
+ n.key === "ArrowLeft" ? (n.preventDefault(), b()) : n.key === "ArrowRight" && (n.preventDefault(), p());
84
+ },
85
+ [b, p]
86
+ );
87
+ return e.useEffect(() => {
88
+ !t || !a || a(t);
89
+ }, [t, a]), e.useEffect(() => {
90
+ if (t)
91
+ return u(t), t.on("reInit", u), t.on("select", u), t.on("scroll", m), () => {
92
+ t?.off("reInit", u), t?.off("select", u), t?.off("scroll", m);
93
+ };
94
+ }, [t, u, m]), /* @__PURE__ */ e.createElement(
95
+ h.Provider,
96
+ {
97
+ value: {
98
+ carouselRef: N,
99
+ api: t,
100
+ opts: o,
101
+ orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
102
+ scrollPrev: b,
103
+ scrollNext: p,
104
+ canScrollPrev: w,
105
+ canScrollNext: E
106
+ }
107
+ },
108
+ /* @__PURE__ */ e.createElement(
109
+ "div",
110
+ {
111
+ ref: f,
112
+ onKeyDownCapture: R,
113
+ className: d("relative", s),
114
+ role: "region",
115
+ "aria-roledescription": "carousel",
116
+ ...i
117
+ },
118
+ c,
119
+ /* @__PURE__ */ e.createElement("div", { className: "relative w-full mt-4 h-1 bg-navy-opacity-16 rounded-full overflow-hidden md:max-w-3xl mx-auto" }, /* @__PURE__ */ e.createElement(
120
+ "div",
121
+ {
122
+ className: "absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0",
123
+ style: {
124
+ transform: `translateX(${P - 100}%)`
125
+ }
126
+ }
127
+ )),
128
+ /* @__PURE__ */ e.createElement("div", { className: "embla__controls max-w-sm mx-auto mt-5 flex justify-center gap-4" }, /* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(x, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" }), /* @__PURE__ */ e.createElement(y, { className: "relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent" })))
129
+ )
130
+ );
131
+ }
132
+ );
133
+ B.displayName = "Carousel";
134
+ const K = e.forwardRef(({ className: r, ...o }, a) => {
135
+ const { carouselRef: l, orientation: s } = v();
136
+ return /* @__PURE__ */ e.createElement("div", { ref: l, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
137
+ "div",
138
+ {
139
+ ref: a,
140
+ className: d(
141
+ "flex",
142
+ s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
143
+ r
144
+ ),
145
+ ...o
146
+ }
147
+ ));
148
+ });
149
+ K.displayName = "CarouselContent";
150
+ const L = e.forwardRef(({ className: r, ...o }, a) => {
151
+ const { orientation: l } = v();
152
+ return /* @__PURE__ */ e.createElement(
153
+ "div",
154
+ {
155
+ ref: a,
156
+ role: "group",
157
+ "aria-roledescription": "slide",
158
+ className: d(
159
+ "min-w-0 shrink-0 grow-0 basis-full",
160
+ l === "horizontal" ? "pl-4" : "pt-4",
161
+ r
162
+ ),
163
+ ...o
164
+ }
165
+ );
166
+ });
167
+ L.displayName = "CarouselItem";
168
+ const x = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
169
+ const { orientation: c, scrollPrev: i, canScrollPrev: f } = v();
170
+ return /* @__PURE__ */ e.createElement(
171
+ g,
9
172
  {
10
- href: r,
11
- className: "breadcrumb hover:text-whitish-opacity-60 duration-200"
173
+ ref: s,
174
+ variant: o,
175
+ size: a,
176
+ className: d(
177
+ "absolute h-8 w-8 rounded-full",
178
+ c === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
179
+ r
180
+ ),
181
+ disabled: !f,
182
+ onClick: i,
183
+ ...l
12
184
  },
13
- i(e, 55)
14
- )) : /* @__PURE__ */ t.createElement(a, { variant: "link", className: "text-whitish breadcrumb" }, i(e, 55));
15
- };
185
+ /* @__PURE__ */ e.createElement(_, { className: "h-4 w-4" }),
186
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
187
+ );
188
+ });
189
+ x.displayName = "CarouselPrevious";
190
+ const y = e.forwardRef(({ className: r, variant: o = "outline", size: a = "icon", ...l }, s) => {
191
+ const { orientation: c, scrollNext: i, canScrollNext: f } = v();
192
+ return /* @__PURE__ */ e.createElement(
193
+ g,
194
+ {
195
+ ref: s,
196
+ variant: o,
197
+ size: a,
198
+ className: d(
199
+ "absolute h-8 w-8 rounded-full",
200
+ c === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
201
+ r
202
+ ),
203
+ disabled: !f,
204
+ onClick: i,
205
+ ...l
206
+ },
207
+ /* @__PURE__ */ e.createElement(D, { className: "h-4 w-4" }),
208
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
209
+ );
210
+ });
211
+ y.displayName = "CarouselNext";
16
212
  export {
17
- l as default
213
+ B as Carousel,
214
+ K as CarouselContent,
215
+ L as CarouselItem,
216
+ y as CarouselNext,
217
+ x as CarouselPrevious
18
218
  };
19
219
  //# sourceMappingURL=index.es47.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es47.js","sources":["../src/components/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import React from 'react'\r\nimport Text from '../core/typography/Text'\r\nimport { getAdapter } from '@/Adapters'\r\nimport truncateText from '@/lib/utils/truncateText'\r\n\r\nexport interface BreadcrumbProps {\r\n title: string\r\n href?: string\r\n}\r\n\r\nconst Breadcrumb: React.FC<BreadcrumbProps> = ({ title, href }) => {\r\n const LinkWrapper = getAdapter('LinkWrapper')\r\n\r\n if (!href)\r\n return (\r\n <Text variant=\"link\" className=\"text-whitish breadcrumb\">\r\n {truncateText(title, 55)}\r\n </Text>\r\n )\r\n\r\n return (\r\n <Text variant=\"small-body\" className=\"text-whitish-opacity-32\">\r\n <LinkWrapper\r\n href={href}\r\n className=\"breadcrumb hover:text-whitish-opacity-60 duration-200\"\r\n >\r\n {truncateText(title, 55)}\r\n </LinkWrapper>\r\n </Text>\r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n"],"names":["Breadcrumb","title","href","LinkWrapper","getAdapter","React","Text","truncateText"],"mappings":";;;;AAUA,MAAMA,IAAwC,CAAC,EAAE,OAAAC,GAAO,MAAAC,QAAW;AAC3D,QAAAC,IAAcC,EAAW,aAAa;AAE5C,SAAKF,IAQFG,gBAAAA,EAAA,cAAAC,GAAA,EAAK,SAAQ,cAAa,WAAU,6BACnCD,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAAD;AAAA,MACA,WAAU;AAAA,IAAA;AAAA,IAETK,EAAaN,GAAO,EAAE;AAAA,EAAA,CAE3B,IAbEI,gBAAAA,EAAA,cAACC,KAAK,SAAQ,QAAO,WAAU,0BAC5B,GAAAC,EAAaN,GAAO,EAAE,CACzB;AAaN;"}
1
+ {"version":3,"file":"index.es47.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div className=\"relative w-full mt-4 h-1 bg-navy-opacity-16 rounded-full overflow-hidden md:max-w-3xl mx-auto\">\r\n <div\r\n className=\"absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0\"\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div className=\"embla__controls max-w-sm mx-auto mt-5 flex justify-center gap-4\">\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0 border border-solid border-navy-opacity-32 rounded-md bg-transparent\" />\r\n </div>\r\n\r\n {/* <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div> */}\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_, index) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={\"embla__dot\".concat(\r\n index === selectedIndex ? \" embla__dot--selected\" : \"\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ArrowLeft","ArrowRight"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { SectionProps } from './Section';
2
2
 
3
3
  interface CardsGridSectionProps<T> {
4
4
  title: string;
5
+ sectionId?: string;
5
6
  desc?: string;
6
7
  items: T[];
7
8
  component?: string;
@@ -16,6 +17,6 @@ interface CardsGridSectionProps<T> {
16
17
  withoutCarousel?: boolean;
17
18
  footnote?: string;
18
19
  }
19
- declare const CardsGridSection: <T>({ title, desc, items, component, withoutTopPadding, withTopMargin, withBottomMargin, withoutBottomPadding, variant, corners, columns, showControlsOnDesktop, withoutCarousel, footnote, }: CardsGridSectionProps<T>) => import("react/jsx-dev-runtime").JSX.Element;
20
+ declare const CardsGridSection: <T>({ title, sectionId, desc, items, component, withoutTopPadding, withTopMargin, withBottomMargin, withoutBottomPadding, variant, corners, columns, showControlsOnDesktop, withoutCarousel, footnote, }: CardsGridSectionProps<T>) => import("react/jsx-dev-runtime").JSX.Element;
20
21
  export default CardsGridSection;
21
22
  //# sourceMappingURL=CardsGridSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardsGridSection.d.ts","sourceRoot":"","sources":["../../src/sections/CardsGridSection.tsx"],"names":[],"mappings":"AAAA,OAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAqBjD,UAAU,qBAAqB,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB,iMAenB,sBAAsB,CAAC,CAAC,gDAwB1B,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"CardsGridSection.d.ts","sourceRoot":"","sources":["../../src/sections/CardsGridSection.tsx"],"names":[],"mappings":"AAAA,OAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAqBjD,UAAU,qBAAqB,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB,4MAgBnB,sBAAsB,CAAC,CAAC,gDAyB1B,CAAA;AAED,eAAe,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "type": "git",
14
14
  "url": "git+https://github.com/wowxoxo/precision-ui.git"
15
15
  },
16
- "version": "0.5.4",
16
+ "version": "0.5.5",
17
17
  "type": "module",
18
18
  "module": "./dist/index.es.js",
19
19
  "types": "./dist/index.d.ts",