@pulog/ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { OTPInput } from 'input-otp';
4
+
5
+ declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
6
+ containerClassName?: string;
7
+ }): react_jsx_runtime.JSX.Element;
8
+ declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
9
+ declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
10
+ index: number;
11
+ }): react_jsx_runtime.JSX.Element;
12
+ declare function InputOTPSeparator({ ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
13
+
14
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
@@ -0,0 +1,82 @@
1
+ import * as React from 'react';
2
+ import { OTPInput, OTPInputContext } from 'input-otp';
3
+ import { cn } from '@pulog/utils';
4
+ import { MinusIcon } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ // src/input-otp.tsx
8
+ function InputOTP({
9
+ className,
10
+ containerClassName,
11
+ ...props
12
+ }) {
13
+ return /* @__PURE__ */ jsx(
14
+ OTPInput,
15
+ {
16
+ "data-slot": "input-otp",
17
+ containerClassName: cn(
18
+ "cn-input-otp flex items-center has-disabled:opacity-50",
19
+ containerClassName
20
+ ),
21
+ spellCheck: false,
22
+ className: cn("disabled:cursor-not-allowed", className),
23
+ ...props
24
+ }
25
+ );
26
+ }
27
+ function InputOTPGroup({ className, ...props }) {
28
+ return /* @__PURE__ */ jsx(
29
+ "div",
30
+ {
31
+ "data-slot": "input-otp-group",
32
+ className: cn(
33
+ "flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40",
34
+ className
35
+ ),
36
+ ...props
37
+ }
38
+ );
39
+ }
40
+ function InputOTPSlot({
41
+ index,
42
+ className,
43
+ ...props
44
+ }) {
45
+ const inputOTPContext = React.useContext(OTPInputContext);
46
+ const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
47
+ return /* @__PURE__ */ jsxs(
48
+ "div",
49
+ {
50
+ "data-slot": "input-otp-slot",
51
+ "data-active": isActive,
52
+ className: cn(
53
+ "relative flex size-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",
54
+ className
55
+ ),
56
+ ...props,
57
+ children: [
58
+ char,
59
+ hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
60
+ ]
61
+ }
62
+ );
63
+ }
64
+ function InputOTPSeparator({ ...props }) {
65
+ return /* @__PURE__ */ jsx(
66
+ "div",
67
+ {
68
+ "data-slot": "input-otp-separator",
69
+ className: "flex items-center [&_svg:not([class*='size-'])]:size-4",
70
+ role: "separator",
71
+ ...props,
72
+ children: /* @__PURE__ */ jsx(
73
+ MinusIcon,
74
+ {}
75
+ )
76
+ }
77
+ );
78
+ }
79
+
80
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
81
+ //# sourceMappingURL=input-otp.js.map
82
+ //# sourceMappingURL=input-otp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/input-otp.tsx"],"names":[],"mappings":";;;;;;;AAMA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,kBAAA,EAAoB,EAAA;AAAA,QAClB,wDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,UAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC3E,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yKAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,eAAA,GAAwB,iBAAW,eAAe,CAAA;AACxD,EAAA,MAAM,EAAE,MAAM,YAAA,EAAc,QAAA,KAAa,eAAA,EAAiB,KAAA,CAAM,KAAK,CAAA,IAAK,EAAC;AAE3E,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,aAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,qfAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,QACA,YAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,yEACb,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAA2D,CAAA,EAC5E;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,iBAAA,CAAkB,EAAE,GAAG,KAAA,EAAM,EAAgC;AACpE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAU,wDAAA;AAAA,MACV,IAAA,EAAK,WAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA;AACD;AAAA,GACF;AAEJ","file":"input-otp.js","sourcesContent":["import * as React from \"react\"\r\nimport { OTPInput, OTPInputContext } from \"input-otp\"\r\n\r\nimport { cn } from \"@pulog/utils\"\r\nimport { MinusIcon } from \"lucide-react\"\r\n\r\nfunction InputOTP({\r\n className,\r\n containerClassName,\r\n ...props\r\n}: React.ComponentProps<typeof OTPInput> & {\r\n containerClassName?: string\r\n}) {\r\n return (\r\n <OTPInput\r\n data-slot=\"input-otp\"\r\n containerClassName={cn(\r\n \"cn-input-otp flex items-center has-disabled:opacity-50\",\r\n containerClassName\r\n )}\r\n spellCheck={false}\r\n className={cn(\"disabled:cursor-not-allowed\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"input-otp-group\"\r\n className={cn(\r\n \"flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction InputOTPSlot({\r\n index,\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & {\r\n index: number\r\n}) {\r\n const inputOTPContext = React.useContext(OTPInputContext)\r\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}\r\n\r\n return (\r\n <div\r\n data-slot=\"input-otp-slot\"\r\n data-active={isActive}\r\n className={cn(\r\n \"relative flex size-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {char}\r\n {hasFakeCaret && (\r\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\r\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"input-otp-separator\"\r\n className=\"flex items-center [&_svg:not([class*='size-'])]:size-4\"\r\n role=\"separator\"\r\n {...props}\r\n >\r\n <MinusIcon\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\r\n"]}
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as ResizablePrimitive from 'react-resizable-panels';
3
+
4
+ declare function ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps): react_jsx_runtime.JSX.Element;
5
+ declare function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps): react_jsx_runtime.JSX.Element;
6
+ declare function ResizableHandle({ withHandle, className, ...props }: ResizablePrimitive.SeparatorProps & {
7
+ withHandle?: boolean;
8
+ }): react_jsx_runtime.JSX.Element;
9
+
10
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -0,0 +1,46 @@
1
+ import * as ResizablePrimitive from 'react-resizable-panels';
2
+ import { cn } from '@pulog/utils';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ // src/resizable.tsx
6
+ function ResizablePanelGroup({
7
+ className,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsx(
11
+ ResizablePrimitive.Group,
12
+ {
13
+ "data-slot": "resizable-panel-group",
14
+ className: cn(
15
+ "flex h-full w-full aria-[orientation=vertical]:flex-col",
16
+ className
17
+ ),
18
+ ...props
19
+ }
20
+ );
21
+ }
22
+ function ResizablePanel({ ...props }) {
23
+ return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
24
+ }
25
+ function ResizableHandle({
26
+ withHandle,
27
+ className,
28
+ ...props
29
+ }) {
30
+ return /* @__PURE__ */ jsx(
31
+ ResizablePrimitive.Separator,
32
+ {
33
+ "data-slot": "resizable-handle",
34
+ className: cn(
35
+ "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
36
+ className
37
+ ),
38
+ ...props,
39
+ children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" })
40
+ }
41
+ );
42
+ }
43
+
44
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
45
+ //# sourceMappingURL=resizable.js.map
46
+ //# sourceMappingURL=resizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resizable.tsx"],"names":[],"mappings":";;;;;AAIA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkC;AAChC,EAAA,uBACE,GAAA;AAAA,IAAoB,kBAAA,CAAA,KAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,GAAG,KAAA,EAAM,EAAkC;AACnE,EAAA,2BAA2B,kBAAA,CAAA,KAAA,EAAnB,EAAyB,WAAA,EAAU,iBAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AAC1E;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uBACE,GAAA;AAAA,IAAoB,kBAAA,CAAA,SAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,skBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,UAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iDAAA,EAAkD;AAAA;AAAA,GAErE;AAEJ","file":"resizable.js","sourcesContent":["import * as ResizablePrimitive from \"react-resizable-panels\"\r\n\r\nimport { cn } from \"@pulog/utils\"\r\n\r\nfunction ResizablePanelGroup({\r\n className,\r\n ...props\r\n}: ResizablePrimitive.GroupProps) {\r\n return (\r\n <ResizablePrimitive.Group\r\n data-slot=\"resizable-panel-group\"\r\n className={cn(\r\n \"flex h-full w-full aria-[orientation=vertical]:flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\r\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\r\n}\r\n\r\nfunction ResizableHandle({\r\n withHandle,\r\n className,\r\n ...props\r\n}: ResizablePrimitive.SeparatorProps & {\r\n withHandle?: boolean\r\n}) {\r\n return (\r\n <ResizablePrimitive.Separator\r\n data-slot=\"resizable-handle\"\r\n className={cn(\r\n \"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {withHandle && (\r\n <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />\r\n )}\r\n </ResizablePrimitive.Separator>\r\n )\r\n}\r\n\r\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\r\n"]}
@@ -0,0 +1,6 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ToasterProps } from 'sonner';
3
+
4
+ declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
5
+
6
+ export { Toaster };
package/dist/sonner.js ADDED
@@ -0,0 +1,39 @@
1
+ import { useTheme } from 'next-themes';
2
+ import { Toaster as Toaster$1 } from 'sonner';
3
+ import { Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ // src/sonner.tsx
7
+ var Toaster = ({ ...props }) => {
8
+ const { theme = "system" } = useTheme();
9
+ return /* @__PURE__ */ jsx(
10
+ Toaster$1,
11
+ {
12
+ theme,
13
+ className: "toaster group",
14
+ icons: {
15
+ success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
16
+ info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
17
+ warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
18
+ error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
19
+ loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
20
+ },
21
+ style: {
22
+ "--normal-bg": "var(--popover)",
23
+ "--normal-text": "var(--popover-foreground)",
24
+ "--normal-border": "var(--border)",
25
+ "--border-radius": "var(--radius)"
26
+ },
27
+ toastOptions: {
28
+ classNames: {
29
+ toast: "cn-toast"
30
+ }
31
+ },
32
+ ...props
33
+ }
34
+ );
35
+ };
36
+
37
+ export { Toaster };
38
+ //# sourceMappingURL=sonner.js.map
39
+ //# sourceMappingURL=sonner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sonner.tsx"],"names":["Sonner"],"mappings":";;;;;;AAIA,IAAM,OAAA,GAAU,CAAC,EAAE,GAAG,OAAM,KAAoB;AAC9C,EAAA,MAAM,EAAE,KAAA,GAAQ,QAAA,EAAS,GAAI,QAAA,EAAS;AAEtC,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA,EAAU,eAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,OAAA,kBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEtC,IAAA,kBACE,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAE/B,OAAA,kBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAExC,KAAA,kBACE,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEnC,OAAA,kBACE,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,qBAAA,EAAsB;AAAA,OAEjD;AAAA,MACA,KAAA,EACE;AAAA,QACE,aAAA,EAAe,gBAAA;AAAA,QACf,eAAA,EAAiB,2BAAA;AAAA,QACjB,iBAAA,EAAmB,eAAA;AAAA,QACnB,iBAAA,EAAmB;AAAA,OACrB;AAAA,MAEF,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,KAAA,EAAO;AAAA;AACT,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"sonner.js","sourcesContent":["import { useTheme } from \"next-themes\"\r\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\r\nimport { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from \"lucide-react\"\r\n\r\nconst Toaster = ({ ...props }: ToasterProps) => {\r\n const { theme = \"system\" } = useTheme()\r\n\r\n return (\r\n <Sonner\r\n theme={theme as ToasterProps[\"theme\"]}\r\n className=\"toaster group\"\r\n icons={{\r\n success: (\r\n <CircleCheckIcon className=\"size-4\" />\r\n ),\r\n info: (\r\n <InfoIcon className=\"size-4\" />\r\n ),\r\n warning: (\r\n <TriangleAlertIcon className=\"size-4\" />\r\n ),\r\n error: (\r\n <OctagonXIcon className=\"size-4\" />\r\n ),\r\n loading: (\r\n <Loader2Icon className=\"size-4 animate-spin\" />\r\n ),\r\n }}\r\n style={\r\n {\r\n \"--normal-bg\": \"var(--popover)\",\r\n \"--normal-text\": \"var(--popover-foreground)\",\r\n \"--normal-border\": \"var(--border)\",\r\n \"--border-radius\": \"var(--radius)\",\r\n } as React.CSSProperties\r\n }\r\n toastOptions={{\r\n classNames: {\r\n toast: \"cn-toast\",\r\n },\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Toaster }\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,107 @@
1
1
  {
2
2
  "name": "@pulog/ui",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Shared shadcn/Radix primitives (button, input, popover, ...) and PortalContainerContext for Shadow DOM remotes.",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "registry": "https://registry.npmjs.org/"
11
+ },
12
+ "main": "./dist/index.js",
13
+ "module": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ },
20
+ "./carousel": {
21
+ "types": "./dist/carousel.d.ts",
22
+ "import": "./dist/carousel.js"
23
+ },
24
+ "./chart": {
25
+ "types": "./dist/chart.d.ts",
26
+ "import": "./dist/chart.js"
27
+ },
28
+ "./drawer": {
29
+ "types": "./dist/drawer.d.ts",
30
+ "import": "./dist/drawer.js"
31
+ },
32
+ "./input-otp": {
33
+ "types": "./dist/input-otp.d.ts",
34
+ "import": "./dist/input-otp.js"
35
+ },
36
+ "./resizable": {
37
+ "types": "./dist/resizable.d.ts",
38
+ "import": "./dist/resizable.js"
39
+ },
40
+ "./sonner": {
41
+ "types": "./dist/sonner.d.ts",
42
+ "import": "./dist/sonner.js"
43
+ }
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "README.md"
48
+ ],
49
+ "scripts": {
50
+ "build": "tsup",
51
+ "dev": "tsup --watch",
52
+ "typecheck": "tsc --noEmit -p tsconfig.json",
53
+ "prepublishOnly": "npm run build",
54
+ "test": "vitest run"
55
+ },
56
+ "dependencies": {
57
+ "@pulog/utils": "^0.1.0",
58
+ "class-variance-authority": "^0.7.1"
59
+ },
60
+ "peerDependencies": {
61
+ "cmdk": "^1.1.0",
62
+ "embla-carousel-react": "^8.6.0",
63
+ "input-otp": "^1.4.0",
64
+ "lucide-react": ">=1.0.0",
65
+ "next-themes": "^0.4.0",
66
+ "radix-ui": "^1.5.0",
67
+ "react": "^18.2.0",
68
+ "react-day-picker": "^10.0.0",
69
+ "react-dom": "^18.2.0",
70
+ "react-resizable-panels": "^4.0.0",
71
+ "recharts": "^3.8.0",
72
+ "sonner": "^2.0.0",
73
+ "vaul": "^1.1.2"
74
+ },
75
+ "devDependencies": {
76
+ "embla-carousel-react": "^8.6.0",
77
+ "input-otp": "^1.5.0",
78
+ "next-themes": "^0.4.6",
79
+ "react-resizable-panels": "^4.14.8",
80
+ "recharts": "^3.10.1",
81
+ "sonner": "^2.0.8",
82
+ "vaul": "^1.1.2"
83
+ },
84
+ "peerDependenciesMeta": {
85
+ "embla-carousel-react": {
86
+ "optional": true
87
+ },
88
+ "recharts": {
89
+ "optional": true
90
+ },
91
+ "vaul": {
92
+ "optional": true
93
+ },
94
+ "input-otp": {
95
+ "optional": true
96
+ },
97
+ "react-resizable-panels": {
98
+ "optional": true
99
+ },
100
+ "sonner": {
101
+ "optional": true
102
+ },
103
+ "next-themes": {
104
+ "optional": true
105
+ }
106
+ }
107
+ }