@iit/precision-ui 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/cards/License.d.ts.map +1 -1
- package/dist/components/ui/carousel.d.ts +2 -1
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/decorators/CarouselWrapper.d.ts +2 -1
- package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +51 -49
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +1 -1
- package/dist/index.es11.js +1 -1
- package/dist/index.es14.js +1 -1
- package/dist/index.es15.js +1 -1
- package/dist/index.es17.js +1 -1
- package/dist/index.es18.js +2 -2
- package/dist/index.es2.js +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es23.js +2 -2
- package/dist/index.es24.js +3 -3
- package/dist/index.es25.js +3 -3
- package/dist/index.es26.js +3 -3
- package/dist/index.es27.js +1 -1
- package/dist/index.es28.js +1 -1
- package/dist/index.es29.js +3 -3
- package/dist/index.es3.js +2 -2
- package/dist/index.es30.js +10 -9
- package/dist/index.es30.js.map +1 -1
- package/dist/index.es31.js +3 -3
- package/dist/index.es32.js +3 -3
- package/dist/index.es33.js +3 -3
- package/dist/index.es34.js +3 -3
- package/dist/index.es35.js +1 -1
- package/dist/index.es36.js +1 -1
- package/dist/index.es37.js +1 -1
- package/dist/index.es38.js +2 -2
- package/dist/index.es39.js +2 -2
- package/dist/index.es4.js +1 -1
- package/dist/index.es40.js +4 -4
- package/dist/index.es41.js +2 -2
- package/dist/index.es42.js +3 -3
- package/dist/index.es44.js +47 -18
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +10 -9
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +19 -91
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +90 -89
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +82 -25
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +27 -71
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.es50.js +70 -36
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +42 -10
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +11 -6
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +6 -22
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +21 -19
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +17 -17
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +20 -47
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +4 -27
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +246 -14
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +24 -239
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es6.js +1 -1
- package/dist/index.es60.js +16 -4
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es7.js +1 -1
- package/dist/index.es8.js +1 -1
- package/package.json +1 -1
package/dist/index.es54.js
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { ArrowSliderPrev16X16 as s, ArrowSliderNext16X16 as m, MoreLink16X16 as l, LessLink16X16 as u } from "@iit/precision-ui-icons";
|
|
2
|
+
import { ThumbsUp as f, ThumbsDown as p } from "lucide-react";
|
|
3
|
+
import o from "react";
|
|
4
|
+
const i = "1em", a = (e) => Object.keys(e).reduce((r, t) => (r[t] = ({
|
|
5
|
+
width: n = i,
|
|
6
|
+
height: c = i
|
|
7
|
+
}) => o.createElement(e[t], { width: n, height: c }), r), {}), d = {
|
|
8
|
+
chevronLeft: s,
|
|
9
|
+
chevronRight: m,
|
|
10
|
+
plus: l,
|
|
11
|
+
minus: u,
|
|
12
|
+
like: f,
|
|
13
|
+
dislike: p
|
|
14
|
+
}, h = a(d), I = (e, r, t) => {
|
|
15
|
+
if (e) {
|
|
16
|
+
const n = h[e];
|
|
17
|
+
if (n)
|
|
18
|
+
return n({ width: r, height: t });
|
|
15
19
|
}
|
|
16
|
-
)
|
|
17
|
-
|
|
20
|
+
return /* @__PURE__ */ o.createElement(o.Fragment, null);
|
|
21
|
+
};
|
|
18
22
|
export {
|
|
19
|
-
|
|
20
|
-
s as PopoverContent,
|
|
21
|
-
l as PopoverTrigger
|
|
23
|
+
I as iconDefiner
|
|
22
24
|
};
|
|
23
25
|
//# sourceMappingURL=index.es54.js.map
|
package/dist/index.es54.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es54.js","sources":["../src/components/ui/
|
|
1
|
+
{"version":3,"file":"index.es54.js","sources":["../src/components/ui/icon.tsx"],"sourcesContent":["import {\r\n ArrowSliderNext16X16,\r\n ArrowSliderPrev16X16,\r\n LessLink16X16,\r\n MoreLink16X16,\r\n} from '@iit/precision-ui-icons'\r\nimport { ThumbsDown, ThumbsUp } from 'lucide-react'\r\n\r\nimport React from 'react'\r\n\r\nconst DEFAULT_ICON_SIZE = '1em'\r\n\r\nexport type IconName =\r\n | 'chevronLeft'\r\n | 'chevronRight'\r\n | 'plus'\r\n | 'minus'\r\n | 'like'\r\n | 'dislike'\r\n\r\n// TODO: move to separate file\r\n// type IconMap = {\r\n// [key in IconName]: (props: {\r\n// width?: number | string\r\n// height?: number | string\r\n// }) => React.ReactElement\r\n// }\r\n\r\ninterface IconProps {\r\n width?: number | string\r\n height?: number | string\r\n}\r\n\r\nconst generateIconMap = (\r\n icons: Record<IconName, React.ComponentType<React.SVGProps<SVGSVGElement>>>\r\n) => {\r\n return Object.keys(icons).reduce<\r\n Record<IconName, (props: IconProps) => React.ReactElement>\r\n >((acc, key) => {\r\n acc[key as IconName] = ({\r\n width = DEFAULT_ICON_SIZE,\r\n height = DEFAULT_ICON_SIZE,\r\n }: IconProps) =>\r\n React.createElement(icons[key as IconName], { width, height })\r\n return acc\r\n }, {} as Record<IconName, (props: IconProps) => React.ReactElement>)\r\n}\r\n\r\nconst icons: Record<\r\n IconName,\r\n React.ComponentType<React.SVGProps<SVGSVGElement>>\r\n> = {\r\n chevronLeft: ArrowSliderPrev16X16,\r\n chevronRight: ArrowSliderNext16X16,\r\n plus: MoreLink16X16,\r\n minus: LessLink16X16,\r\n like: ThumbsUp,\r\n dislike: ThumbsDown,\r\n}\r\n\r\nconst iconMap = generateIconMap(icons)\r\nexport const iconDefiner = (\r\n icon?: IconName,\r\n width?: number | string,\r\n height?: number | string\r\n): React.ReactElement => {\r\n if (icon) {\r\n const selectedIcon = iconMap[icon]\r\n if (selectedIcon) {\r\n return selectedIcon({ width, height })\r\n }\r\n }\r\n return <></>\r\n}\r\n"],"names":["DEFAULT_ICON_SIZE","generateIconMap","icons","acc","key","width","height","React","ArrowSliderPrev16X16","ArrowSliderNext16X16","MoreLink16X16","LessLink16X16","ThumbsUp","ThumbsDown","iconMap","iconDefiner","icon","selectedIcon"],"mappings":";;;AAUA,MAAMA,IAAoB,OAuBpBC,IAAkB,CACtBC,MAEO,OAAO,KAAKA,CAAK,EAAE,OAExB,CAACC,GAAKC,OACFD,EAAAC,CAAe,IAAI,CAAC;AAAA,EACtB,OAAAC,IAAQL;AAAA,EACR,QAAAM,IAASN;AAAA,MAETO,EAAM,cAAcL,EAAME,CAAe,GAAG,EAAE,OAAAC,GAAO,QAAAC,EAAA,CAAQ,GACxDH,IACN,CAAgE,CAAA,GAG/DD,IAGF;AAAA,EACF,aAAaM;AAAA,EACb,cAAcC;AAAA,EACd,MAAMC;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,SAASC;AACX,GAEMC,IAAUb,EAAgBC,CAAK,GACxBa,IAAc,CACzBC,GACAX,GACAC,MACuB;AACvB,MAAIU,GAAM;AACF,UAAAC,IAAeH,EAAQE,CAAI;AACjC,QAAIC;AACF,aAAOA,EAAa,EAAE,OAAAZ,GAAO,QAAAC,EAAQ,CAAA;AAAA,EAEzC;AACA,SAASC,gBAAAA,EAAA,cAAAA,EAAA,UAAA,IAAA;AACX;"}
|
package/dist/index.es55.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import * as t from "react";
|
|
2
|
-
import * as
|
|
3
|
-
import { cn as
|
|
4
|
-
const
|
|
5
|
-
|
|
1
|
+
import * as t from "@radix-ui/react-popover";
|
|
2
|
+
import * as e from "react";
|
|
3
|
+
import { cn as i } from "./index.es53.js";
|
|
4
|
+
const p = t.Root, l = t.Trigger, s = e.forwardRef(({ className: o, align: a = "center", sideOffset: r = 4, ...d }, n) => /* @__PURE__ */ e.createElement(t.Portal, null, /* @__PURE__ */ e.createElement(
|
|
5
|
+
t.Content,
|
|
6
6
|
{
|
|
7
|
-
ref:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
ref: n,
|
|
8
|
+
align: a,
|
|
9
|
+
sideOffset: r,
|
|
10
|
+
className: i(
|
|
11
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
12
|
+
o
|
|
12
13
|
),
|
|
13
|
-
...
|
|
14
|
+
...d
|
|
14
15
|
}
|
|
15
|
-
));
|
|
16
|
-
s.displayName =
|
|
16
|
+
)));
|
|
17
|
+
s.displayName = t.Content.displayName;
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
-
s as
|
|
20
|
-
|
|
21
|
-
p as TooltipTrigger
|
|
19
|
+
p as Popover,
|
|
20
|
+
s as PopoverContent,
|
|
21
|
+
l as PopoverTrigger
|
|
22
22
|
};
|
|
23
23
|
//# sourceMappingURL=index.es55.js.map
|
package/dist/index.es55.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es55.js","sources":["../src/components/ui/
|
|
1
|
+
{"version":3,"file":"index.es55.js","sources":["../src/components/ui/popover.tsx"],"sourcesContent":["import * as PopoverPrimitive from '@radix-ui/react-popover'\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst Popover = PopoverPrimitive.Root\r\n\r\nconst PopoverTrigger = PopoverPrimitive.Trigger\r\n\r\nconst PopoverContent = React.forwardRef<\r\n React.ElementRef<typeof PopoverPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n ref={ref}\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </PopoverPrimitive.Portal>\r\n))\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\r\n\r\nexport { Popover, PopoverTrigger, PopoverContent }\r\n"],"names":["Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","React","className","align","sideOffset","props","ref","cn"],"mappings":";;;AAKA,MAAMA,IAAUC,EAAiB,MAE3BC,IAAiBD,EAAiB,SAElCE,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,OAAAC,IAAQ,UAAU,YAAAC,IAAa,GAAG,GAAGC,KAASC,MAC3D,gBAAAL,EAAA,cAAAH,EAAiB,QAAjB,MACC,gBAAAG,EAAA;AAAA,EAACH,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAQ;AAAA,IACA,OAAAH;AAAA,IACA,YAAAC;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CACF,CACD;AACDL,EAAe,cAAcF,EAAiB,QAAQ;"}
|
package/dist/index.es56.js
CHANGED
|
@@ -1,50 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { cn as
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return "md:basis-1/2 lg:basis-1/3";
|
|
18
|
-
case 4:
|
|
19
|
-
return "md:basis-1/2 lg:basis-1/4";
|
|
20
|
-
default:
|
|
21
|
-
return "md:basis-1/2 lg:basis-1/3";
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
return /* @__PURE__ */ e.createElement(
|
|
25
|
-
n,
|
|
26
|
-
{
|
|
27
|
-
opts: {
|
|
28
|
-
align: "start"
|
|
29
|
-
},
|
|
30
|
-
className: b("my-carousel w-full -mt-3", o),
|
|
31
|
-
hideControlsOnDesktop: m,
|
|
32
|
-
variant: c
|
|
33
|
-
},
|
|
34
|
-
/* @__PURE__ */ e.createElement(i, { className: "-ml-4 pt-3" }, r.map((s, a) => /* @__PURE__ */ e.createElement(
|
|
35
|
-
p,
|
|
36
|
-
{
|
|
37
|
-
key: a,
|
|
38
|
-
className: `pl-4 ${u(
|
|
39
|
-
s.size
|
|
40
|
-
// Safely access `size` property
|
|
41
|
-
)}`
|
|
42
|
-
},
|
|
43
|
-
t(s, a)
|
|
44
|
-
)))
|
|
45
|
-
);
|
|
46
|
-
};
|
|
1
|
+
import * as t from "react";
|
|
2
|
+
import * as o from "@radix-ui/react-tooltip";
|
|
3
|
+
import { cn as r } from "./index.es53.js";
|
|
4
|
+
const n = o.Provider, l = o.Root, p = o.Trigger, s = t.forwardRef(({ className: e, sideOffset: i = 4, ...a }, d) => /* @__PURE__ */ t.createElement(
|
|
5
|
+
o.Content,
|
|
6
|
+
{
|
|
7
|
+
ref: d,
|
|
8
|
+
sideOffset: i,
|
|
9
|
+
className: r(
|
|
10
|
+
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
11
|
+
e
|
|
12
|
+
),
|
|
13
|
+
...a
|
|
14
|
+
}
|
|
15
|
+
));
|
|
16
|
+
s.displayName = o.Content.displayName;
|
|
47
17
|
export {
|
|
48
|
-
|
|
18
|
+
l as Tooltip,
|
|
19
|
+
s as TooltipContent,
|
|
20
|
+
n as TooltipProvider,
|
|
21
|
+
p as TooltipTrigger
|
|
49
22
|
};
|
|
50
23
|
//# sourceMappingURL=index.es56.js.map
|
package/dist/index.es56.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es56.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index.es56.js","sources":["../src/components/ui/tooltip.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider\r\n\r\nconst Tooltip = TooltipPrimitive.Root\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger\r\n\r\nconst TooltipContent = React.forwardRef<\r\n React.ElementRef<typeof TooltipPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <TooltipPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\r\n"],"names":["TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","React","className","sideOffset","props","ref","cn"],"mappings":";;;AAKA,MAAMA,IAAkBC,EAAiB,UAEnCC,IAAUD,EAAiB,MAE3BE,IAAiBF,EAAiB,SAElCG,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,GAAGC,EAAM,GAAGC,MAC1C,gBAAAJ,EAAA;AAAA,EAACJ,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAQ;AAAA,IACA,YAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAe,cAAcH,EAAiB,QAAQ;"}
|
package/dist/index.es57.js
CHANGED
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
variant: {
|
|
5
|
-
factoid: "typo_variant_factoid",
|
|
6
|
-
h1: "typo_variant_h1",
|
|
7
|
-
h2: "typo_variant_h2",
|
|
8
|
-
h3: "typo_variant_h3",
|
|
9
|
-
h4: "typo_variant_h4",
|
|
10
|
-
h5: "typo_variant_h5",
|
|
11
|
-
h6: "typo_variant_h6",
|
|
12
|
-
"subtitle-1": "typo_variant_subtitle-1",
|
|
13
|
-
"subtitle-2": "typo_variant_subtitle-2",
|
|
14
|
-
overline: "typo_variant_overline",
|
|
15
|
-
"lead-text": "typo_variant_lead-text",
|
|
16
|
-
body: "typo_variant_body",
|
|
17
|
-
"small-body": "typo_variant_small-body",
|
|
18
|
-
caption: "typo_variant_caption",
|
|
19
|
-
button: "typo_variant_button",
|
|
20
|
-
link: "typo_variant_link"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
defaultVariants: {
|
|
24
|
-
variant: "body"
|
|
25
|
-
}
|
|
26
|
-
});
|
|
1
|
+
function u(r, n) {
|
|
2
|
+
return r ? r.length <= n ? r : r.slice(0, n) + "..." : "";
|
|
3
|
+
}
|
|
27
4
|
export {
|
|
28
|
-
|
|
5
|
+
u as default
|
|
29
6
|
};
|
|
30
7
|
//# sourceMappingURL=index.es57.js.map
|
package/dist/index.es57.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es57.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index.es57.js","sources":["../src/lib/utils/truncateText.ts"],"sourcesContent":["function truncateText(text: string, maxLength: number): string {\r\n if (!text) return ''\r\n if (text.length <= maxLength) {\r\n return text\r\n }\r\n return text.slice(0, maxLength) + '...'\r\n}\r\n\r\nexport default truncateText\r\n"],"names":["truncateText","text","maxLength"],"mappings":"AAAA,SAASA,EAAaC,GAAcC,GAA2B;AAC7D,SAAKD,IACDA,EAAK,UAAUC,IACVD,IAEFA,EAAK,MAAM,GAAGC,CAAS,IAAI,QAJhB;AAKpB;"}
|
package/dist/index.es58.js
CHANGED
|
@@ -1,19 +1,251 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import e from "react";
|
|
2
|
+
import j from "embla-carousel-react";
|
|
3
|
+
import { ChevronLeft as B, ChevronRight as K } from "lucide-react";
|
|
4
|
+
import { cn as s } from "./index.es53.js";
|
|
5
|
+
import { Slot as L } from "@radix-ui/react-slot";
|
|
6
|
+
import { cva as V } from "class-variance-authority";
|
|
7
|
+
const X = V(
|
|
8
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "bg-white text-navy hover:bg-navy-opacity-4",
|
|
13
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
14
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
15
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
16
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
17
|
+
},
|
|
18
|
+
size: {
|
|
19
|
+
default: "h-10 px-4 py-2",
|
|
20
|
+
sm: "h-9 rounded-md px-3",
|
|
21
|
+
lg: "h-11 rounded-md px-8",
|
|
22
|
+
icon: "h-10 w-10"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
// variant: "default",
|
|
27
|
+
// size: "default",
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
), p = e.forwardRef(
|
|
31
|
+
({ className: r, variant: o, size: l, asChild: a = !1, ...c }, u) => {
|
|
32
|
+
const i = a ? L : "button";
|
|
33
|
+
return /* @__PURE__ */ e.createElement(
|
|
34
|
+
i,
|
|
35
|
+
{
|
|
36
|
+
className: s(X({ variant: o, size: l }), r),
|
|
37
|
+
ref: u,
|
|
38
|
+
...c
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
p.displayName = "Button";
|
|
44
|
+
const w = e.createContext(null);
|
|
45
|
+
function h() {
|
|
46
|
+
const r = e.useContext(w);
|
|
47
|
+
if (!r)
|
|
48
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
49
|
+
return r;
|
|
50
|
+
}
|
|
51
|
+
const $ = e.forwardRef(
|
|
52
|
+
({
|
|
53
|
+
orientation: r = "horizontal",
|
|
54
|
+
opts: o,
|
|
55
|
+
setApi: l,
|
|
56
|
+
plugins: a,
|
|
57
|
+
className: c,
|
|
58
|
+
children: u,
|
|
59
|
+
hideControlsOnDesktop: i = !1,
|
|
60
|
+
variant: d = "default",
|
|
61
|
+
controlsAlign: g = "center",
|
|
62
|
+
...N
|
|
63
|
+
}, E) => {
|
|
64
|
+
const [S, t] = j(
|
|
65
|
+
{
|
|
66
|
+
...o,
|
|
67
|
+
axis: r === "horizontal" ? "x" : "y"
|
|
68
|
+
},
|
|
69
|
+
a
|
|
70
|
+
), [P, k] = e.useState(!1), [R, z] = e.useState(!1), [_, I] = e.useState(0), m = e.useCallback(() => {
|
|
71
|
+
if (!t)
|
|
72
|
+
return;
|
|
73
|
+
const n = t.scrollProgress();
|
|
74
|
+
console.log("progress", n), I(n * 100);
|
|
75
|
+
}, [t]), f = e.useCallback(
|
|
76
|
+
(n) => {
|
|
77
|
+
n && (k(n.canScrollPrev()), z(n.canScrollNext()), m());
|
|
78
|
+
},
|
|
79
|
+
[m]
|
|
80
|
+
), v = e.useCallback(() => {
|
|
81
|
+
t?.scrollPrev();
|
|
82
|
+
}, [t]), b = e.useCallback(() => {
|
|
83
|
+
t?.scrollNext();
|
|
84
|
+
}, [t]), D = e.useCallback(
|
|
85
|
+
(n) => {
|
|
86
|
+
n.key === "ArrowLeft" ? (n.preventDefault(), v()) : n.key === "ArrowRight" && (n.preventDefault(), b());
|
|
87
|
+
},
|
|
88
|
+
[v, b]
|
|
89
|
+
);
|
|
90
|
+
e.useEffect(() => {
|
|
91
|
+
!t || !l || l(t);
|
|
92
|
+
}, [t, l]), e.useEffect(() => {
|
|
93
|
+
if (t)
|
|
94
|
+
return f(t), t.on("reInit", f), t.on("select", f), t.on("scroll", m), () => {
|
|
95
|
+
t?.off("reInit", f), t?.off("select", f), t?.off("scroll", m);
|
|
96
|
+
};
|
|
97
|
+
}, [t, f, m]);
|
|
98
|
+
const x = s(
|
|
99
|
+
"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",
|
|
100
|
+
d === "white" ? "hover:bg-whitish border-whitish-opacity-32" : "hover:bg-navy hover:text-white border-navy-opacity-32"
|
|
101
|
+
);
|
|
102
|
+
return /* @__PURE__ */ e.createElement(
|
|
103
|
+
w.Provider,
|
|
104
|
+
{
|
|
105
|
+
value: {
|
|
106
|
+
carouselRef: S,
|
|
107
|
+
api: t,
|
|
108
|
+
opts: o,
|
|
109
|
+
orientation: r || (o?.axis === "y" ? "vertical" : "horizontal"),
|
|
110
|
+
scrollPrev: v,
|
|
111
|
+
scrollNext: b,
|
|
112
|
+
canScrollPrev: P,
|
|
113
|
+
canScrollNext: R
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
/* @__PURE__ */ e.createElement(
|
|
117
|
+
"div",
|
|
118
|
+
{
|
|
119
|
+
ref: E,
|
|
120
|
+
onKeyDownCapture: D,
|
|
121
|
+
className: s("relative", c),
|
|
122
|
+
role: "region",
|
|
123
|
+
"aria-roledescription": "carousel",
|
|
124
|
+
...N
|
|
125
|
+
},
|
|
126
|
+
u,
|
|
127
|
+
/* @__PURE__ */ e.createElement(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
className: s(
|
|
131
|
+
"relative w-full mt-8 rounded-full overflow-hidden",
|
|
132
|
+
i ? "lg:hidden" : "",
|
|
133
|
+
d === "white" ? "bg-whitish-opacity-16 h-0.5" : "bg-gray-300 h-0.5",
|
|
134
|
+
g === "center" ? "mx-auto md:max-w-2xl" : ""
|
|
135
|
+
)
|
|
136
|
+
},
|
|
137
|
+
/* @__PURE__ */ e.createElement(
|
|
138
|
+
"div",
|
|
139
|
+
{
|
|
140
|
+
className: s(
|
|
141
|
+
"absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0",
|
|
142
|
+
d === "white" ? "bg-whitish" : "bg-navy"
|
|
143
|
+
),
|
|
144
|
+
style: {
|
|
145
|
+
transform: `translateX(${_ - 100}%)`
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
),
|
|
150
|
+
/* @__PURE__ */ e.createElement(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
className: s(
|
|
154
|
+
"embla__controls max-w-sm mt-6 flex gap-4",
|
|
155
|
+
i ? "lg:hidden" : "",
|
|
156
|
+
g === "center" ? "mx-auto flex justify-center" : ""
|
|
157
|
+
)
|
|
158
|
+
},
|
|
159
|
+
/* @__PURE__ */ e.createElement("div", { className: "embla__buttons space-x-2" }, /* @__PURE__ */ e.createElement(y, { className: x }), /* @__PURE__ */ e.createElement(C, { className: x }))
|
|
160
|
+
)
|
|
161
|
+
)
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
$.displayName = "Carousel";
|
|
166
|
+
const q = e.forwardRef(({ className: r, ...o }, l) => {
|
|
167
|
+
const { carouselRef: a, orientation: c } = h();
|
|
168
|
+
return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
|
|
169
|
+
"div",
|
|
170
|
+
{
|
|
171
|
+
ref: l,
|
|
172
|
+
className: s(
|
|
173
|
+
"flex",
|
|
174
|
+
c === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
|
|
175
|
+
r
|
|
176
|
+
),
|
|
177
|
+
...o
|
|
178
|
+
}
|
|
179
|
+
));
|
|
180
|
+
});
|
|
181
|
+
q.displayName = "CarouselContent";
|
|
182
|
+
const F = e.forwardRef(({ className: r, ...o }, l) => {
|
|
183
|
+
const { orientation: a } = h();
|
|
184
|
+
return /* @__PURE__ */ e.createElement(
|
|
185
|
+
"div",
|
|
186
|
+
{
|
|
187
|
+
ref: l,
|
|
188
|
+
role: "group",
|
|
189
|
+
"aria-roledescription": "slide",
|
|
190
|
+
className: s(
|
|
191
|
+
"min-w-0 shrink-0 grow-0 basis-full",
|
|
192
|
+
a === "horizontal" ? "pl-4" : "pt-4",
|
|
193
|
+
r
|
|
194
|
+
),
|
|
195
|
+
...o
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
});
|
|
199
|
+
F.displayName = "CarouselItem";
|
|
200
|
+
const y = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
201
|
+
const { orientation: u, scrollPrev: i, canScrollPrev: d } = h();
|
|
202
|
+
return /* @__PURE__ */ e.createElement(
|
|
203
|
+
p,
|
|
9
204
|
{
|
|
10
|
-
|
|
11
|
-
|
|
205
|
+
ref: c,
|
|
206
|
+
variant: o,
|
|
207
|
+
size: l,
|
|
208
|
+
className: s(
|
|
209
|
+
"absolute h-8 w-8 rounded-full",
|
|
210
|
+
u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
211
|
+
r
|
|
212
|
+
),
|
|
213
|
+
disabled: !d,
|
|
214
|
+
onClick: i,
|
|
215
|
+
...a
|
|
12
216
|
},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
217
|
+
/* @__PURE__ */ e.createElement(B, { className: "h-5 w-5" }),
|
|
218
|
+
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
|
|
219
|
+
);
|
|
220
|
+
});
|
|
221
|
+
y.displayName = "CarouselPrevious";
|
|
222
|
+
const C = e.forwardRef(({ className: r, variant: o = "outline", size: l = "icon", ...a }, c) => {
|
|
223
|
+
const { orientation: u, scrollNext: i, canScrollNext: d } = h();
|
|
224
|
+
return /* @__PURE__ */ e.createElement(
|
|
225
|
+
p,
|
|
226
|
+
{
|
|
227
|
+
ref: c,
|
|
228
|
+
variant: o,
|
|
229
|
+
size: l,
|
|
230
|
+
className: s(
|
|
231
|
+
"absolute h-8 w-8 rounded-full",
|
|
232
|
+
u === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
233
|
+
r
|
|
234
|
+
),
|
|
235
|
+
disabled: !d,
|
|
236
|
+
onClick: i,
|
|
237
|
+
...a
|
|
238
|
+
},
|
|
239
|
+
/* @__PURE__ */ e.createElement(K, { className: "h-5 w-5" }),
|
|
240
|
+
/* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
|
|
241
|
+
);
|
|
242
|
+
});
|
|
243
|
+
C.displayName = "CarouselNext";
|
|
16
244
|
export {
|
|
17
|
-
|
|
245
|
+
$ as Carousel,
|
|
246
|
+
q as CarouselContent,
|
|
247
|
+
F as CarouselItem,
|
|
248
|
+
C as CarouselNext,
|
|
249
|
+
y as CarouselPrevious
|
|
18
250
|
};
|
|
19
251
|
//# sourceMappingURL=index.es58.js.map
|
package/dist/index.es58.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es58.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.es58.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n// import { DotButton, useDotButton } from '../CarouselDotButton'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\ninterface CustomProps {\r\n hideControlsOnDesktop?: boolean\r\n variant?: 'default' | 'white'\r\n controlsAlign?: 'left' | 'center'\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps & CustomProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n hideControlsOnDesktop = false,\r\n variant = 'default',\r\n controlsAlign = 'center',\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n const buttonClasses = cn(\r\n 'relative left-auto top-auto right-auto translate-y-0 border border-solid rounded-lg bg-transparent hover:rounded-[24px] transition-all duration-200 h-10 w-10',\r\n variant === 'white'\r\n ? 'hover:bg-whitish border-whitish-opacity-32'\r\n : 'hover:bg-navy hover:text-white border-navy-opacity-32'\r\n )\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div\r\n className={cn(\r\n 'relative w-full mt-8 rounded-full overflow-hidden',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n variant === 'white'\r\n ? 'bg-whitish-opacity-16 h-0.5'\r\n : 'bg-gray-300 h-0.5',\r\n controlsAlign === 'center' ? 'mx-auto md:max-w-2xl' : ''\r\n )}\r\n >\r\n <div\r\n className={cn(\r\n 'absolute top-0 left-0 h-full w-full rounded-full transition-transform duration-0',\r\n variant === 'white' ? 'bg-whitish' : 'bg-navy'\r\n )}\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div\r\n className={cn(\r\n 'embla__controls max-w-sm mt-6 flex gap-4',\r\n hideControlsOnDesktop ? 'lg:hidden' : '',\r\n controlsAlign === 'center' ? 'mx-auto flex justify-center' : ''\r\n )}\r\n >\r\n <div className=\"embla__buttons space-x-2\">\r\n <CarouselPrevious className={buttonClasses} />\r\n <CarouselNext className={buttonClasses} />\r\n </div>\r\n\r\n {/* <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div> */}\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_: unknown, index: number) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={'embla__dot'.concat(\r\n index === selectedIndex ? ' embla__dot--selected' : ''\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ChevronLeft className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ChevronRight className=\"h-5 w-5\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","hideControlsOnDesktop","controlsAlign","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","buttonClasses","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ChevronLeft","ChevronRight"],"mappings":";;;;;;AAcA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA;AAAA;AAAA,IAGjB;AAAA,EACF;AACF,GAQMC,IAASC,EAAM;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,SAAAC,IAAU,IAAO,GAAGC,EAAM,GAAGC,MAAQ;AAC1D,UAAAC,IAAOH,IAAUI,IAAO;AAE5B,WAAAR,gBAAAA,EAAA;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,WAAWE,EAAGZ,EAAe,EAAE,SAAAK,GAAS,MAAAC,EAAK,CAAC,GAAGF,CAAS;AAAA,QAC1D,KAAAK;AAAA,QACC,GAAGD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AACAN,EAAO,cAAc;AAyBrB,MAAMW,IAAkBV,EAAM,cAA2C,IAAI;AAE7E,SAASW,IAAc;AACf,QAAAC,IAAUZ,EAAM,WAAWU,CAAe;AAEhD,MAAI,CAACE;AACG,UAAA,IAAI,MAAM,gDAAgD;AAG3D,SAAAA;AACT;AAQA,MAAMC,IAAWb,EAAM;AAAA,EAIrB,CACE;AAAA,IACE,aAAAc,IAAc;AAAA,IACd,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAhB;AAAA,IACA,UAAAiB;AAAA,IACA,uBAAAC,IAAwB;AAAA,IACxB,SAAAjB,IAAU;AAAA,IACV,eAAAkB,IAAgB;AAAA,IAChB,GAAGf;AAAA,KAELC,MACG;AACG,UAAA,CAACe,GAAaC,CAAG,IAAIC;AAAA,MACzB;AAAA,QACE,GAAGR;AAAA,QACH,MAAMD,MAAgB,eAAe,MAAM;AAAA,MAC7C;AAAA,MACAG;AAAA,IAAA,GAEI,CAACO,GAAeC,CAAgB,IAAIzB,EAAM,SAAS,EAAK,GACxD,CAAC0B,GAAeC,CAAgB,IAAI3B,EAAM,SAAS,EAAK,GACxD,CAAC4B,GAAgBC,CAAiB,IAAI7B,EAAM,SAAS,CAAC,GAEtD8B,IAAW9B,EAAM,YAAY,MAAM;AACvC,UAAI,CAACsB;AAAK;AACJ,YAAAS,IAAWT,EAAI;AACb,cAAA,IAAI,YAAYS,CAAQ,GAChCF,EAAkBE,IAAW,GAAG;AAAA,IAAA,GAC/B,CAACT,CAAG,CAAC,GAEFU,IAAWhC,EAAM;AAAA,MACrB,CAACsB,MAAqB;AACpB,QAAKA,MACYA,EAAAA,EAAI,eAAe,GACnBA,EAAAA,EAAI,eAAe,GAC3BQ;MACX;AAAA,MACA,CAACA,CAAQ;AAAA,IAAA,GAGLG,IAAajC,EAAM,YAAY,MAAM;AACzC,MAAAsB,GAAK,WAAW;AAAA,IAAA,GACf,CAACA,CAAG,CAAC,GAEFY,IAAalC,EAAM,YAAY,MAAM;AACzC,MAAAsB,GAAK,WAAW;AAAA,IAAA,GACf,CAACA,CAAG,CAAC,GAEFa,IAAgBnC,EAAM;AAAA,MAC1B,CAACoC,MAA+C;AAC1C,QAAAA,EAAM,QAAQ,eAChBA,EAAM,eAAe,GACVH,OACFG,EAAM,QAAQ,iBACvBA,EAAM,eAAe,GACVF;MAEf;AAAA,MACA,CAACD,GAAYC,CAAU;AAAA,IAAA;AAGzBlC,IAAAA,EAAM,UAAU,MAAM;AAChB,MAAA,CAACsB,KAAO,CAACN,KACbA,EAAOM,CAAG;AAAA,IAAA,GACT,CAACA,GAAKN,CAAM,CAAC,GAEhBhB,EAAM,UAAU,MAAM;AACpB,UAAKsB;AACL,eAAAU,EAASV,CAAG,GACRA,EAAA,GAAG,UAAUU,CAAQ,GACrBV,EAAA,GAAG,UAAUU,CAAQ,GACrBV,EAAA,GAAG,UAAUQ,CAAQ,GAElB,MAAM;AACN,UAAAR,GAAA,IAAI,UAAUU,CAAQ,GACtBV,GAAA,IAAI,UAAUU,CAAQ,GACtBV,GAAA,IAAI,UAAUQ,CAAQ;AAAA,QAAA;AAAA,IAE5B,GAAA,CAACR,GAAKU,GAAUF,CAAQ,CAAC;AAI5B,UAAMO,IAAgB5B;AAAA,MACpB;AAAA,MACAP,MAAY,UACR,+CACA;AAAA,IAAA;AAIJ,WAAAF,gBAAAA,EAAA;AAAA,MAACU,EAAgB;AAAA,MAAhB;AAAA,QACC,OAAO;AAAA,UACL,aAAAW;AAAA,UACA,KAAAC;AAAA,UACA,MAAAP;AAAA,UACA,aACED,MAAgBC,GAAM,SAAS,MAAM,aAAa;AAAA,UACpD,YAAAkB;AAAA,UACA,YAAAC;AAAA,UACA,eAAAV;AAAA,UACA,eAAAE;AAAA,QACF;AAAA,MAAA;AAAA,MAEA1B,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAM;AAAA,UACA,kBAAkB6B;AAAA,UAClB,WAAW1B,EAAG,YAAYR,CAAS;AAAA,UACnC,MAAK;AAAA,UACL,wBAAqB;AAAA,UACpB,GAAGI;AAAA,QAAA;AAAA,QAEHa;AAAA,QAGDlB,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWS;AAAA,cACT;AAAA,cACAU,IAAwB,cAAc;AAAA,cACtCjB,MAAY,UACR,gCACA;AAAA,cACJkB,MAAkB,WAAW,yBAAyB;AAAA,YACxD;AAAA,UAAA;AAAA,UAEApB,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWS;AAAA,gBACT;AAAA,gBACAP,MAAY,UAAU,eAAe;AAAA,cACvC;AAAA,cACA,OAAO;AAAA,gBACL,WAAW,cAAc0B,IAAiB,GAAG;AAAA,cAC/C;AAAA,YAAA;AAAA,UACD;AAAA,QACH;AAAA,QAEA5B,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWS;AAAA,cACT;AAAA,cACAU,IAAwB,cAAc;AAAA,cACtCC,MAAkB,WAAW,gCAAgC;AAAA,YAC/D;AAAA,UAAA;AAAA,UAECpB,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,8BACZA,gBAAAA,EAAA,cAAAsC,GAAA,EAAiB,WAAWD,EAAA,CAAe,GAC5CrC,gBAAAA,EAAA,cAACuC,GAAa,EAAA,WAAWF,GAAe,CAC1C;AAAA,QAQF;AAAA,MAqBF;AAAA,IAAA;AAAA,EAGN;AACF;AACAxB,EAAS,cAAc;AAEjB,MAAA2B,IAAkBxC,EAAM,WAG5B,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAM,GAAGC,MAAQ;AAClC,QAAM,EAAE,aAAAe,GAAa,aAAAP,EAAY,IAAIH,EAAY;AAEjD,SACGX,gBAAAA,EAAA,cAAA,OAAA,EAAI,KAAKqB,GAAa,WAAU,qBAC/BrB,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAM;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAK,MAAgB,eAAe,UAAU;AAAA,QACzCb;AAAA,MACF;AAAA,MACC,GAAGI;AAAA,IAAA;AAAA,EAAA,CAER;AAEJ,CAAC;AACDmC,EAAgB,cAAc;AAExB,MAAAC,IAAezC,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAM,GAAGC,MAAQ;AAC5B,QAAA,EAAE,aAAAQ,MAAgBH;AAGtB,SAAAX,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAM;AAAA,MACA,MAAK;AAAA,MACL,wBAAqB;AAAA,MACrB,WAAWG;AAAA,QACT;AAAA,QACAK,MAAgB,eAAe,SAAS;AAAA,QACxCb;AAAA,MACF;AAAA,MACC,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;AACDoC,EAAa,cAAc;AAE3B,MAAMH,IAAmBtC,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,SAAAC,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGE,EAAA,GAASC,MAAQ;AACtE,QAAM,EAAE,aAAAQ,GAAa,YAAAmB,GAAY,eAAAT,MAAkBb,EAAY;AAG7D,SAAAX,gBAAAA,EAAA;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,KAAAO;AAAA,MACA,SAAAJ;AAAA,MACA,MAAAC;AAAA,MACA,WAAWM;AAAA,QACT;AAAA,QACAK,MAAgB,eACZ,sCACA;AAAA,QACJb;AAAA,MACF;AAAA,MACA,UAAU,CAACuB;AAAA,MACX,SAASS;AAAA,MACR,GAAG5B;AAAA,IAAA;AAAA,IAEJL,gBAAAA,EAAA,cAAC0C,GAAY,EAAA,WAAU,UAAU,CAAA;AAAA,IAChC1C,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,gBAAc;AAAA,EAAA;AAG9C,CAAC;AACDsC,EAAiB,cAAc;AAE/B,MAAMC,IAAevC,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,SAAAC,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGE,EAAA,GAASC,MAAQ;AACtE,QAAM,EAAE,aAAAQ,GAAa,YAAAoB,GAAY,eAAAR,MAAkBf,EAAY;AAG7D,SAAAX,gBAAAA,EAAA;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,KAAAO;AAAA,MACA,SAAAJ;AAAA,MACA,MAAAC;AAAA,MACA,WAAWM;AAAA,QACT;AAAA,QACAK,MAAgB,eACZ,uCACA;AAAA,QACJb;AAAA,MACF;AAAA,MACA,UAAU,CAACyB;AAAA,MACX,SAASQ;AAAA,MACR,GAAG7B;AAAA,IAAA;AAAA,IAEJL,gBAAAA,EAAA,cAAC2C,GAAa,EAAA,WAAU,UAAU,CAAA;AAAA,IACjC3C,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,YAAU;AAAA,EAAA;AAG1C,CAAC;AACDuC,EAAa,cAAc;"}
|