@abumble/design-system 0.0.31 → 0.0.33
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/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/shared/Button.js +10 -11
- package/dist/shared/Button.js.map +1 -1
- package/dist/shared/Dialog.js +5 -5
- package/dist/shared/Dialog.js.map +1 -1
- package/package.json +1 -1
- package/src/styles.css +2 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "link" | "
|
|
4
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
5
|
size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAA;AAED,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAChC,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,2CAUD;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/shared/Button.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
|
-
import { Slot as
|
|
4
|
-
import { cva as
|
|
3
|
+
import { Slot as s } from "@radix-ui/react-slot";
|
|
4
|
+
import { cva as a } from "class-variance-authority";
|
|
5
5
|
import { c as d } from "./utils.js";
|
|
6
|
-
const c =
|
|
6
|
+
const c = a(
|
|
7
7
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded 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",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
|
-
primary: "bg-slate-900 text-slate-50 shadow-md hover:bg-slate-800 active:scale-[0.98] dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-200",
|
|
12
11
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
13
12
|
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
14
13
|
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
@@ -31,24 +30,24 @@ const c = o(
|
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
);
|
|
34
|
-
function
|
|
33
|
+
function f({
|
|
35
34
|
className: e,
|
|
36
35
|
variant: r,
|
|
37
36
|
size: t,
|
|
38
37
|
asChild: i = !1,
|
|
39
|
-
...
|
|
38
|
+
...n
|
|
40
39
|
}) {
|
|
41
|
-
return /* @__PURE__ */
|
|
42
|
-
i ?
|
|
40
|
+
return /* @__PURE__ */ o(
|
|
41
|
+
i ? s : "button",
|
|
43
42
|
{
|
|
44
43
|
"data-slot": "button",
|
|
45
44
|
className: d(c({ variant: r, size: t, className: e })),
|
|
46
|
-
...
|
|
45
|
+
...n
|
|
47
46
|
}
|
|
48
47
|
);
|
|
49
48
|
}
|
|
50
49
|
export {
|
|
51
|
-
|
|
50
|
+
f as B,
|
|
52
51
|
c as b
|
|
53
52
|
};
|
|
54
53
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/components/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded 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\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/components/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded 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\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n\t\t\t\tdestructive:\n\t\t\t\t\t\"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n\t\t\t\tghost:\n\t\t\t\t\t\"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n\t\t\t\tsm: \"h-8 rounded gap-1.5 px-3 has-[>svg]:px-2.5\",\n\t\t\t\tlg: \"h-10 rounded px-6 has-[>svg]:px-4\",\n\t\t\t\ticon: \"size-9\",\n\t\t\t\t\"icon-sm\": \"size-8\",\n\t\t\t\t\"icon-lg\": \"size-10\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"outline\",\n\t\t\tsize: \"default\",\n\t\t},\n\t}\n)\n\nfunction Button({\n\tclassName,\n\tvariant,\n\tsize,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tasChild?: boolean\n\t}) {\n\tconst Comp = asChild ? Slot : \"button\"\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"button\"\n\t\t\tclassName={cn(buttonVariants({ variant, size, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","jsx","Slot","cn"],"mappings":";;;;;AAMA,MAAMA,IAAiBC;AAAA,EACtB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,aACC;AAAA,QACD,SACC;AAAA,QACD,WACC;AAAA,QACD,OACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,MAEP,MAAM;AAAA,QACL,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACZ;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF;AAEA,SAASC,EAAO;AAAA,EACf,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACJ,GAGI;AAGH,SACC,gBAAAC;AAAA,IAHYF,IAAUG,IAAO;AAAA,IAG5B;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGV,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
package/dist/shared/Dialog.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as a, jsxs as o, Fragment as
|
|
1
|
+
import { jsx as a, jsxs as o, Fragment as m } from "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
|
-
import { XIcon as
|
|
3
|
+
import { XIcon as u } from "lucide-react";
|
|
4
4
|
import * as n from "@radix-ui/react-dialog";
|
|
5
5
|
import { c as i } from "./utils.js";
|
|
6
6
|
import { B as f } from "./Button.js";
|
|
@@ -54,7 +54,7 @@ function v({
|
|
|
54
54
|
{
|
|
55
55
|
"data-slot": "dialog-content",
|
|
56
56
|
className: i(
|
|
57
|
-
"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(
|
|
57
|
+
"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100vw-2rem)] sm:max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none",
|
|
58
58
|
e
|
|
59
59
|
),
|
|
60
60
|
...l,
|
|
@@ -66,7 +66,7 @@ function v({
|
|
|
66
66
|
"data-slot": "dialog-close",
|
|
67
67
|
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
68
68
|
children: [
|
|
69
|
-
/* @__PURE__ */ a(
|
|
69
|
+
/* @__PURE__ */ a(u, {}),
|
|
70
70
|
/* @__PURE__ */ a("span", { className: "sr-only", children: "Close" })
|
|
71
71
|
]
|
|
72
72
|
}
|
|
@@ -169,7 +169,7 @@ function y({
|
|
|
169
169
|
/* @__PURE__ */ a("span", { className: "text-foreground", children: e }),
|
|
170
170
|
/* @__PURE__ */ a("span", { children: "/" }),
|
|
171
171
|
/* @__PURE__ */ a("span", { children: t }),
|
|
172
|
-
g && /* @__PURE__ */ o(
|
|
172
|
+
g && /* @__PURE__ */ o(m, { children: [
|
|
173
173
|
/* @__PURE__ */ a("span", { className: "text-border", children: "·" }),
|
|
174
174
|
/* @__PURE__ */ a("span", { className: "hidden sm:inline", children: g })
|
|
175
175
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sources":["../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { XIcon } from 'lucide-react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\n\nimport { cn } from '@/utils'\nimport { Button } from '@/components/Button/Button'\n\n/** Class for create/edit form dialogs: consistent width and scroll. Use via FormDialog or apply to DialogContent. */\nexport const FORM_DIALOG_CONTENT_CLASS =\n\t'max-w-[calc(100vw-2rem)] sm:max-w-2xl max-h-[90vh] overflow-y-auto'\n\nexport function Dialog({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n\treturn <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nexport function DialogTrigger({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n\treturn <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nexport function DialogPortal({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n\treturn <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nexport function DialogClose({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n\treturn <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nexport function DialogOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n\treturn (\n\t\t<DialogPrimitive.Overlay\n\t\t\tdata-slot=\"dialog-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogContent({\n\tclassName,\n\tchildren,\n\tshowCloseIcon = true,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n\tshowCloseIcon?: boolean\n}) {\n\treturn (\n\t\t<DialogPortal data-slot=\"dialog-portal\">\n\t\t\t<DialogOverlay />\n\t\t\t<DialogPrimitive.Content\n\t\t\t\tdata-slot=\"dialog-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showCloseIcon && (\n\t\t\t\t\t<DialogPrimitive.Close\n\t\t\t\t\t\tdata-slot=\"dialog-close\"\n\t\t\t\t\t\tclassName=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</DialogPrimitive.Close>\n\t\t\t\t)}\n\t\t\t</DialogPrimitive.Content>\n\t\t</DialogPortal>\n\t)\n}\n\nexport function DialogHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-header\"\n\t\t\tclassName={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogFooter({\n\tclassName,\n\tshowCloseAction = false,\n\tchildren,\n\t...props\n}: React.ComponentProps<'div'> & {\n\tshowCloseAction?: boolean\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t{showCloseAction && (\n\t\t\t\t<DialogPrimitive.Close asChild>\n\t\t\t\t\t<Button variant=\"outline\">Close</Button>\n\t\t\t\t</DialogPrimitive.Close>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function DialogTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n\treturn (\n\t\t<DialogPrimitive.Title\n\t\t\tdata-slot=\"dialog-title\"\n\t\t\tclassName={cn('text-lg leading-none font-semibold', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n\treturn (\n\t\t<DialogPrimitive.Description\n\t\t\tdata-slot=\"dialog-description\"\n\t\t\tclassName={cn('text-muted-foreground text-sm', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport interface FormDialogProps {\n\topen: boolean\n\tonOpenChange: (open: boolean) => void\n\ttitle: string\n\tdescription: React.ReactNode\n\t/** Optional trigger (e.g. \"Add\" button); when provided, render as first child of Dialog. */\n\ttrigger?: React.ReactNode\n\tchildren: React.ReactNode\n\t/** Optional custom className for DialogContent (overrides FORM_DIALOG_CONTENT_CLASS). Use for wider dialogs (e.g., sm:max-w-5xl for wizards). */\n\tclassName?: string\n\t/** Optional wizard configuration for multi-step forms. Renders a stepper bar at the top of the header. */\n\twizard?: {\n\t\tcurrentStep: number\n\t\ttotalSteps: number\n\t\tstepTitle: string\n\t\tstepLabels?: Array<string>\n\t}\n}\n\n/** Compact glass-styled stepper for top-right corner of wizard dialogs. */\nexport function WizardStepper({\n\tcurrentStep,\n\ttotalSteps,\n\tstepLabels,\n}: {\n\tcurrentStep: number\n\ttotalSteps: number\n\tstepLabels?: Array<string>\n}) {\n\tconst steps = Array.from({ length: totalSteps }, (_, i) => i + 1)\n\tconst currentLabel = stepLabels?.[currentStep - 1]\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"absolute top-4 right-12 z-20 flex items-center gap-2 rounded-full border border-border/50 bg-background/80 px-3 py-1.5 backdrop-blur-sm\"\n\t\t\taria-label=\"Progress\"\n\t\t>\n\t\t\t{/* Step dots */}\n\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t{steps.map((step) => {\n\t\t\t\t\tconst isCompleted = step < currentStep\n\t\t\t\t\tconst isCurrent = step === currentStep\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={step}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-1.5 w-1.5 rounded-full transition-all duration-300',\n\t\t\t\t\t\t\t\tisCurrent && 'bg-primary w-6',\n\t\t\t\t\t\t\t\tisCompleted && 'bg-primary',\n\t\t\t\t\t\t\t\t!isCurrent && !isCompleted && 'bg-muted',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-current={isCurrent ? 'step' : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* Step label/counter */}\n\t\t\t<div className=\"text-muted-foreground flex items-center gap-1.5 text-xs font-medium\">\n\t\t\t\t<span className=\"text-foreground\">{currentStep}</span>\n\t\t\t\t<span>/</span>\n\t\t\t\t<span>{totalSteps}</span>\n\t\t\t\t{currentLabel && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"text-border\">·</span>\n\t\t\t\t\t\t<span className=\"hidden sm:inline\">{currentLabel}</span>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n/** Dialog shell for create/edit forms: standard width, header with title + description. */\nexport function FormDialog({\n\topen,\n\tonOpenChange,\n\ttitle,\n\tdescription,\n\ttrigger,\n\tchildren,\n\tclassName,\n\twizard,\n}: FormDialogProps) {\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t{trigger}\n\t\t\t<DialogContent className={className ?? FORM_DIALOG_CONTENT_CLASS}>\n\t\t\t\t{wizard && (\n\t\t\t\t\t<WizardStepper\n\t\t\t\t\t\tcurrentStep={wizard.currentStep}\n\t\t\t\t\t\ttotalSteps={wizard.totalSteps}\n\t\t\t\t\t\tstepLabels={wizard.stepLabels}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"bg-muted -m-6 p-6 -mb-4\">\n\t\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t)\n}\n"],"names":["FORM_DIALOG_CONTENT_CLASS","Dialog","props","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","jsx","cn","DialogContent","children","showCloseIcon","jsxs","XIcon","DialogHeader","DialogFooter","showCloseAction","Button","DialogTitle","DialogDescription","WizardStepper","currentStep","totalSteps","stepLabels","steps","_","i","currentLabel","step","isCompleted","isCurrent","Fragment","FormDialog","open","onOpenChange","title","description","trigger","wizard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { XIcon } from 'lucide-react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\n\nimport { cn } from '@/utils'\nimport { Button } from '@/components/Button/Button'\n\n/** Class for create/edit form dialogs: consistent width and scroll. Use via FormDialog or apply to DialogContent. */\nexport const FORM_DIALOG_CONTENT_CLASS =\n\t'max-w-[calc(100vw-2rem)] sm:max-w-2xl max-h-[90vh] overflow-y-auto'\n\nexport function Dialog({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n\treturn <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nexport function DialogTrigger({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n\treturn <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nexport function DialogPortal({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n\treturn <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nexport function DialogClose({\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n\treturn <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nexport function DialogOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n\treturn (\n\t\t<DialogPrimitive.Overlay\n\t\t\tdata-slot=\"dialog-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogContent({\n\tclassName,\n\tchildren,\n\tshowCloseIcon = true,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n\tshowCloseIcon?: boolean\n}) {\n\treturn (\n\t\t<DialogPortal data-slot=\"dialog-portal\">\n\t\t\t<DialogOverlay />\n\t\t\t<DialogPrimitive.Content\n\t\t\t\tdata-slot=\"dialog-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100vw-2rem)] sm:max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded border p-6 shadow-lg duration-200 outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showCloseIcon && (\n\t\t\t\t\t<DialogPrimitive.Close\n\t\t\t\t\t\tdata-slot=\"dialog-close\"\n\t\t\t\t\t\tclassName=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</DialogPrimitive.Close>\n\t\t\t\t)}\n\t\t\t</DialogPrimitive.Content>\n\t\t</DialogPortal>\n\t)\n}\n\nexport function DialogHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-header\"\n\t\t\tclassName={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogFooter({\n\tclassName,\n\tshowCloseAction = false,\n\tchildren,\n\t...props\n}: React.ComponentProps<'div'> & {\n\tshowCloseAction?: boolean\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t{showCloseAction && (\n\t\t\t\t<DialogPrimitive.Close asChild>\n\t\t\t\t\t<Button variant=\"outline\">Close</Button>\n\t\t\t\t</DialogPrimitive.Close>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function DialogTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n\treturn (\n\t\t<DialogPrimitive.Title\n\t\t\tdata-slot=\"dialog-title\"\n\t\t\tclassName={cn('text-lg leading-none font-semibold', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function DialogDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n\treturn (\n\t\t<DialogPrimitive.Description\n\t\t\tdata-slot=\"dialog-description\"\n\t\t\tclassName={cn('text-muted-foreground text-sm', className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport interface FormDialogProps {\n\topen: boolean\n\tonOpenChange: (open: boolean) => void\n\ttitle: string\n\tdescription: React.ReactNode\n\t/** Optional trigger (e.g. \"Add\" button); when provided, render as first child of Dialog. */\n\ttrigger?: React.ReactNode\n\tchildren: React.ReactNode\n\t/** Optional custom className for DialogContent (overrides FORM_DIALOG_CONTENT_CLASS). Use for wider dialogs (e.g., sm:max-w-5xl for wizards). */\n\tclassName?: string\n\t/** Optional wizard configuration for multi-step forms. Renders a stepper bar at the top of the header. */\n\twizard?: {\n\t\tcurrentStep: number\n\t\ttotalSteps: number\n\t\tstepTitle: string\n\t\tstepLabels?: Array<string>\n\t}\n}\n\n/** Compact glass-styled stepper for top-right corner of wizard dialogs. */\nexport function WizardStepper({\n\tcurrentStep,\n\ttotalSteps,\n\tstepLabels,\n}: {\n\tcurrentStep: number\n\ttotalSteps: number\n\tstepLabels?: Array<string>\n}) {\n\tconst steps = Array.from({ length: totalSteps }, (_, i) => i + 1)\n\tconst currentLabel = stepLabels?.[currentStep - 1]\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"absolute top-4 right-12 z-20 flex items-center gap-2 rounded-full border border-border/50 bg-background/80 px-3 py-1.5 backdrop-blur-sm\"\n\t\t\taria-label=\"Progress\"\n\t\t>\n\t\t\t{/* Step dots */}\n\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t{steps.map((step) => {\n\t\t\t\t\tconst isCompleted = step < currentStep\n\t\t\t\t\tconst isCurrent = step === currentStep\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={step}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-1.5 w-1.5 rounded-full transition-all duration-300',\n\t\t\t\t\t\t\t\tisCurrent && 'bg-primary w-6',\n\t\t\t\t\t\t\t\tisCompleted && 'bg-primary',\n\t\t\t\t\t\t\t\t!isCurrent && !isCompleted && 'bg-muted',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-current={isCurrent ? 'step' : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* Step label/counter */}\n\t\t\t<div className=\"text-muted-foreground flex items-center gap-1.5 text-xs font-medium\">\n\t\t\t\t<span className=\"text-foreground\">{currentStep}</span>\n\t\t\t\t<span>/</span>\n\t\t\t\t<span>{totalSteps}</span>\n\t\t\t\t{currentLabel && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className=\"text-border\">·</span>\n\t\t\t\t\t\t<span className=\"hidden sm:inline\">{currentLabel}</span>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n/** Dialog shell for create/edit forms: standard width, header with title + description. */\nexport function FormDialog({\n\topen,\n\tonOpenChange,\n\ttitle,\n\tdescription,\n\ttrigger,\n\tchildren,\n\tclassName,\n\twizard,\n}: FormDialogProps) {\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t{trigger}\n\t\t\t<DialogContent className={className ?? FORM_DIALOG_CONTENT_CLASS}>\n\t\t\t\t{wizard && (\n\t\t\t\t\t<WizardStepper\n\t\t\t\t\t\tcurrentStep={wizard.currentStep}\n\t\t\t\t\t\ttotalSteps={wizard.totalSteps}\n\t\t\t\t\t\tstepLabels={wizard.stepLabels}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"bg-muted -m-6 p-6 -mb-4\">\n\t\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t)\n}\n"],"names":["FORM_DIALOG_CONTENT_CLASS","Dialog","props","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","jsx","cn","DialogContent","children","showCloseIcon","jsxs","XIcon","DialogHeader","DialogFooter","showCloseAction","Button","DialogTitle","DialogDescription","WizardStepper","currentStep","totalSteps","stepLabels","steps","_","i","currentLabel","step","isCompleted","isCurrent","Fragment","FormDialog","open","onOpenChange","title","description","trigger","wizard"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/styles.css
CHANGED
|
@@ -99,7 +99,6 @@
|
|
|
99
99
|
|
|
100
100
|
.image-background {
|
|
101
101
|
@apply h-38 bg-cover bg-center bg-blend-overlay bg-stone-300/20 sm:-mb-16 -mb-10;
|
|
102
|
-
background-image: url('/src//assets//background-image.svg');
|
|
103
102
|
z-index: -1;
|
|
104
103
|
}
|
|
105
104
|
|
|
@@ -165,7 +164,7 @@ code {
|
|
|
165
164
|
--foreground: oklch(0.141 0.005 285.823);
|
|
166
165
|
|
|
167
166
|
/* Card: Frosted warm white */
|
|
168
|
-
--card: oklch(1 0 0 / 0.
|
|
167
|
+
--card: oklch(1 0 0 / 0.75);
|
|
169
168
|
--card-foreground: oklch(0.141 0.005 285.823);
|
|
170
169
|
|
|
171
170
|
--popover: oklch(1 0 0);
|
|
@@ -232,7 +231,7 @@ code {
|
|
|
232
231
|
--foreground: oklch(0.985 0 0);
|
|
233
232
|
|
|
234
233
|
/* Card Elevation: Brighter than background */
|
|
235
|
-
--card: oklch(0.23 0.02 260 / 0.
|
|
234
|
+
--card: oklch(0.23 0.02 260 / 0.75);
|
|
236
235
|
--card-foreground: oklch(0.985 0 0);
|
|
237
236
|
|
|
238
237
|
--popover: oklch(0.21 0.015 260);
|