@greatapps/common 1.1.539 → 1.1.540
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,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
+
import { IconLoader2 } from "@tabler/icons-react";
|
|
4
5
|
import { cva } from "class-variance-authority";
|
|
5
6
|
import { cn } from "../../../infra/utils/clsx";
|
|
6
7
|
import { useIsDefaultWhitelabel } from "../../../providers/whitelabel.provider";
|
|
@@ -34,19 +35,28 @@ function Button({
|
|
|
34
35
|
variant,
|
|
35
36
|
size,
|
|
36
37
|
asChild = false,
|
|
38
|
+
loading = false,
|
|
39
|
+
children,
|
|
40
|
+
disabled,
|
|
37
41
|
...props
|
|
38
42
|
}) {
|
|
39
43
|
const isDefaultWl = useIsDefaultWhitelabel();
|
|
40
44
|
const Comp = asChild ? Slot : "button";
|
|
45
|
+
const content = asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
46
|
+
loading && /* @__PURE__ */ jsx(IconLoader2, { className: "size-4 animate-spin" }),
|
|
47
|
+
children
|
|
48
|
+
] });
|
|
41
49
|
return /* @__PURE__ */ jsx(
|
|
42
50
|
Comp,
|
|
43
51
|
{
|
|
44
52
|
"data-slot": "button",
|
|
53
|
+
disabled: disabled || loading,
|
|
45
54
|
className: cn(
|
|
46
55
|
buttonVariants({ variant, size, className }),
|
|
47
56
|
variant === "brand" && (isDefaultWl ? "bg-cyan-300 hover:bg-cyan-200" : "bg-zinc-300 hover:bg-zinc-200")
|
|
48
57
|
),
|
|
49
|
-
...props
|
|
58
|
+
...props,
|
|
59
|
+
children: content
|
|
50
60
|
}
|
|
51
61
|
);
|
|
52
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/buttons/Button.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../../../infra/utils/clsx\"\nimport { useIsDefaultWhitelabel } from \"../../../providers/whitelabel.provider\"\n\nconst buttonVariants = cva(\n \"paragraph-small-semibold cursor-pointer flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \" bg-gray-950 text-white hover:bg-gray-950/90\",\n secondary:\n \"bg-white text-gray-950 border-gray-200 hover:border-gray-400 border\",\n ghost:\n \"text-gray-600 hover:bg-accent hover:text-gray-950 dark:hover:bg-accent/50\",\n brand: \"text-gray-950\",\n },\n size: {\n default: \"h-12 px-4 py-2 has-[>svg]:px-3\",\n sm: \"rounded-md gap-1.5 px-2 py-2 has-[>svg]:px-2.5\",\n lg: \"rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const isDefaultWl = useIsDefaultWhitelabel();\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(\n buttonVariants({ variant, size, className }),\n variant === \"brand\" && (isDefaultWl ? \"bg-cyan-300 hover:bg-cyan-200\" : \"bg-zinc-300 hover:bg-zinc-200\")\n )}\n {...props}\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/buttons/Button.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { IconLoader2 } from \"@tabler/icons-react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../../../infra/utils/clsx\"\nimport { useIsDefaultWhitelabel } from \"../../../providers/whitelabel.provider\"\n\nconst buttonVariants = cva(\n \"paragraph-small-semibold cursor-pointer flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \" bg-gray-950 text-white hover:bg-gray-950/90\",\n secondary:\n \"bg-white text-gray-950 border-gray-200 hover:border-gray-400 border\",\n ghost:\n \"text-gray-600 hover:bg-accent hover:text-gray-950 dark:hover:bg-accent/50\",\n brand: \"text-gray-950\",\n },\n size: {\n default: \"h-12 px-4 py-2 has-[>svg]:px-3\",\n sm: \"rounded-md gap-1.5 px-2 py-2 has-[>svg]:px-2.5\",\n lg: \"rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n children,\n disabled,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n loading?: boolean\n }) {\n const isDefaultWl = useIsDefaultWhitelabel();\n const Comp = asChild ? Slot : \"button\"\n\n const content = asChild ? children : (\n <>\n {loading && <IconLoader2 className=\"size-4 animate-spin\" />}\n {children}\n </>\n )\n\n return (\n <Comp\n data-slot=\"button\"\n disabled={disabled || loading}\n className={cn(\n buttonVariants({ variant, size, className }),\n variant === \"brand\" && (isDefaultWl ? \"bg-cyan-300 hover:bg-cyan-200\" : \"bg-zinc-300 hover:bg-zinc-200\")\n )}\n {...props}\n >\n {content}\n </Comp>\n )\n}\n\nexport { Button, buttonVariants }\n"],"mappings":";AAuDI,mBACc,KADd;AApDJ,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,WAA8B;AACvC,SAAS,UAAU;AACnB,SAAS,8BAA8B;AAEvC,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,OACE;AAAA,QACF,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAIK;AACH,QAAM,cAAc,uBAAuB;AAC3C,QAAM,OAAO,UAAU,OAAO;AAE9B,QAAM,UAAU,UAAU,WACxB,iCACG;AAAA,eAAW,oBAAC,eAAY,WAAU,uBAAsB;AAAA,IACxD;AAAA,KACH;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,UAAU,YAAY;AAAA,MACtB,WAAW;AAAA,QACT,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC;AAAA,QAC3C,YAAY,YAAY,cAAc,kCAAkC;AAAA,MAC1E;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react"
|
|
4
4
|
import { Slot } from "@radix-ui/react-slot"
|
|
5
|
+
import { IconLoader2 } from "@tabler/icons-react"
|
|
5
6
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
7
|
import { cn } from "../../../infra/utils/clsx"
|
|
7
8
|
import { useIsDefaultWhitelabel } from "../../../providers/whitelabel.provider"
|
|
@@ -39,23 +40,37 @@ function Button({
|
|
|
39
40
|
variant,
|
|
40
41
|
size,
|
|
41
42
|
asChild = false,
|
|
43
|
+
loading = false,
|
|
44
|
+
children,
|
|
45
|
+
disabled,
|
|
42
46
|
...props
|
|
43
47
|
}: React.ComponentProps<"button"> &
|
|
44
48
|
VariantProps<typeof buttonVariants> & {
|
|
45
49
|
asChild?: boolean
|
|
50
|
+
loading?: boolean
|
|
46
51
|
}) {
|
|
47
52
|
const isDefaultWl = useIsDefaultWhitelabel();
|
|
48
53
|
const Comp = asChild ? Slot : "button"
|
|
49
54
|
|
|
55
|
+
const content = asChild ? children : (
|
|
56
|
+
<>
|
|
57
|
+
{loading && <IconLoader2 className="size-4 animate-spin" />}
|
|
58
|
+
{children}
|
|
59
|
+
</>
|
|
60
|
+
)
|
|
61
|
+
|
|
50
62
|
return (
|
|
51
63
|
<Comp
|
|
52
64
|
data-slot="button"
|
|
65
|
+
disabled={disabled || loading}
|
|
53
66
|
className={cn(
|
|
54
67
|
buttonVariants({ variant, size, className }),
|
|
55
68
|
variant === "brand" && (isDefaultWl ? "bg-cyan-300 hover:bg-cyan-200" : "bg-zinc-300 hover:bg-zinc-200")
|
|
56
69
|
)}
|
|
57
70
|
{...props}
|
|
58
|
-
|
|
71
|
+
>
|
|
72
|
+
{content}
|
|
73
|
+
</Comp>
|
|
59
74
|
)
|
|
60
75
|
}
|
|
61
76
|
|