@brainfish-ai/components 0.16.2 → 0.16.3-rc.2

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,33 @@
1
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
2
+ import { ClassProp } from 'class-variance-authority/dist/types';
3
+ import { default as default_2 } from 'react';
4
+ import * as React_2 from 'react';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ declare const AlertDialogAction: React_2.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
8
+ variant?: "link" | "dark" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "shadow" | null | undefined;
9
+ size?: "default" | "icon" | "sm" | "lg" | null | undefined;
10
+ } & ClassProp) | undefined) => string> & React_2.RefAttributes<HTMLButtonElement>>;
11
+
12
+ export declare const ConfirmDialog: default_2.ForwardRefExoticComponent<Props & default_2.RefAttributes<ConfirmDialogRef>>;
13
+
14
+ export declare interface ConfirmDialogRef {
15
+ open: () => void;
16
+ close: () => void;
17
+ }
18
+
19
+ declare interface Props {
20
+ title: string;
21
+ description: default_2.ReactNode;
22
+ onSubmit: () => Promise<void> | void;
23
+ onCancel?: () => void;
24
+ open?: boolean;
25
+ onOpenChange?: (open: boolean) => void;
26
+ variant: default_2.ComponentProps<typeof AlertDialogAction>['variant'];
27
+ cancelText: string;
28
+ submitText: string;
29
+ loadingText?: string;
30
+ zIndex: number;
31
+ }
32
+
33
+ export { }
@@ -0,0 +1,48 @@
1
+ import React__default from 'react';
2
+ import { AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './ui/alert-dialog.js';
3
+
4
+ const ConfirmDialog = React__default.forwardRef(
5
+ ({
6
+ title,
7
+ description,
8
+ onSubmit,
9
+ onCancel,
10
+ open: externalOpen,
11
+ onOpenChange: externalOnOpenChange,
12
+ variant,
13
+ cancelText,
14
+ submitText,
15
+ loadingText,
16
+ zIndex
17
+ }, ref) => {
18
+ const zIndexClass = `z-[${zIndex}]`;
19
+ const [isLoading, setIsLoading] = React__default.useState(false);
20
+ const [internalOpen, setInternalOpen] = React__default.useState(false);
21
+ const isOpen = externalOpen ?? internalOpen;
22
+ const setIsOpen = externalOnOpenChange ?? setInternalOpen;
23
+ React__default.useImperativeHandle(ref, () => ({
24
+ open: () => setIsOpen(true),
25
+ close: () => setIsOpen(false)
26
+ }));
27
+ const handleCancel = () => {
28
+ if (isLoading) return;
29
+ onCancel?.();
30
+ setIsOpen(false);
31
+ };
32
+ const handleSubmit = async () => {
33
+ if (isLoading) return;
34
+ setIsLoading(true);
35
+ try {
36
+ await onSubmit();
37
+ setIsOpen(false);
38
+ } finally {
39
+ setIsLoading(false);
40
+ }
41
+ };
42
+ return /* @__PURE__ */ React__default.createElement(AlertDialog, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ React__default.createElement(AlertDialogContent, { zIndex: zIndexClass }, /* @__PURE__ */ React__default.createElement(AlertDialogHeader, null, /* @__PURE__ */ React__default.createElement(AlertDialogTitle, null, title), /* @__PURE__ */ React__default.createElement(AlertDialogDescription, null, description)), /* @__PURE__ */ React__default.createElement(AlertDialogFooter, null, /* @__PURE__ */ React__default.createElement(AlertDialogCancel, { onClick: handleCancel, disabled: isLoading }, cancelText), /* @__PURE__ */ React__default.createElement(AlertDialogAction, { variant, onClick: handleSubmit, disabled: isLoading }, isLoading ? loadingText || submitText : submitText))));
43
+ }
44
+ );
45
+ ConfirmDialog.displayName = "ConfirmDialog";
46
+
47
+ export { ConfirmDialog };
48
+ //# sourceMappingURL=confirm-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.js","sources":["../../../src/components/confirm-dialog/confirm-dialog.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n AlertDialog,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogHeader,\n AlertDialogCancel,\n AlertDialogAction,\n AlertDialogFooter,\n AlertDialogContent,\n} from '../ui/alert-dialog';\n\ninterface Props {\n title: string;\n description: React.ReactNode;\n onSubmit: () => Promise<void> | void;\n onCancel?: () => void;\n // Optional external state control - if not provided, manages state internally\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n variant: React.ComponentProps<typeof AlertDialogAction>['variant'];\n cancelText: string;\n submitText: string;\n loadingText?: string;\n zIndex: number; // z-index of the dialog\n}\n\nexport interface ConfirmDialogRef {\n open: () => void;\n close: () => void;\n}\n\nexport const ConfirmDialog = React.forwardRef<ConfirmDialogRef, Props>(\n (\n {\n title,\n description,\n onSubmit,\n onCancel,\n open: externalOpen,\n onOpenChange: externalOnOpenChange,\n variant,\n cancelText,\n submitText,\n loadingText,\n zIndex,\n },\n ref,\n ) => {\n const zIndexClass = `z-[${zIndex}]`;\n const [isLoading, setIsLoading] = React.useState(false);\n\n // Internal state management (merged from useDialogState)\n const [internalOpen, setInternalOpen] = React.useState(false);\n\n // Use external state if provided, otherwise use internal state\n const isOpen = externalOpen ?? internalOpen;\n const setIsOpen = externalOnOpenChange ?? setInternalOpen;\n\n // Expose methods via ref for programmatic control\n React.useImperativeHandle(ref, () => ({\n open: () => setIsOpen(true),\n close: () => setIsOpen(false),\n }));\n\n const handleCancel = () => {\n if (isLoading) return; // Prevent cancel during loading\n onCancel?.();\n setIsOpen(false);\n };\n\n const handleSubmit = async () => {\n if (isLoading) return; // Prevent double submission\n\n setIsLoading(true);\n try {\n await onSubmit();\n setIsOpen(false); // Close dialog after successful submission\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <AlertDialog open={isOpen} onOpenChange={setIsOpen}>\n <AlertDialogContent zIndex={zIndexClass}>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={handleCancel} disabled={isLoading}>\n {cancelText}\n </AlertDialogCancel>\n <AlertDialogAction variant={variant} onClick={handleSubmit} disabled={isLoading}>\n {isLoading ? loadingText || submitText : submitText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n },\n);\n\nConfirmDialog.displayName = 'ConfirmDialog';\n"],"names":["React"],"mappings":";;;AAiCO,MAAM,gBAAgBA,cAAM,CAAA,UAAA;AAAA,EACjC,CACE;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAM,EAAA,YAAA;AAAA,IACN,YAAc,EAAA,oBAAA;AAAA,IACd,OAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,KAEF,GACG,KAAA;AACH,IAAM,MAAA,WAAA,GAAc,MAAM,MAAM,CAAA,CAAA,CAAA;AAChC,IAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAA,cAAA,CAAM,SAAS,KAAK,CAAA;AAGtD,IAAA,MAAM,CAAC,YAAc,EAAA,eAAe,CAAI,GAAAA,cAAA,CAAM,SAAS,KAAK,CAAA;AAG5D,IAAA,MAAM,SAAS,YAAgB,IAAA,YAAA;AAC/B,IAAA,MAAM,YAAY,oBAAwB,IAAA,eAAA;AAG1C,IAAMA,cAAA,CAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,MACpC,IAAA,EAAM,MAAM,SAAA,CAAU,IAAI,CAAA;AAAA,MAC1B,KAAA,EAAO,MAAM,SAAA,CAAU,KAAK;AAAA,KAC5B,CAAA,CAAA;AAEF,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,SAAW,EAAA;AACf,MAAW,QAAA,IAAA;AACX,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,KACjB;AAEA,IAAA,MAAM,eAAe,YAAY;AAC/B,MAAA,IAAI,SAAW,EAAA;AAEf,MAAA,YAAA,CAAa,IAAI,CAAA;AACjB,MAAI,IAAA;AACF,QAAA,MAAM,QAAS,EAAA;AACf,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,OACf,SAAA;AACA,QAAA,YAAA,CAAa,KAAK,CAAA;AAAA;AACpB,KACF;AAEA,IACE,uBAAAA,cAAA,CAAA,aAAA,CAAC,eAAY,IAAM,EAAA,MAAA,EAAQ,cAAc,SACvC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,sBAAmB,MAAQ,EAAA,WAAA,EAAA,+CACzB,iBACC,EAAA,IAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,wBAAkB,KAAM,CAAA,+CACxB,sBAAwB,EAAA,IAAA,EAAA,WAAY,CACvC,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,yCACEA,cAAA,CAAA,aAAA,CAAA,iBAAA,EAAA,EAAkB,SAAS,YAAc,EAAA,QAAA,EAAU,aACjD,UACH,CAAA,+CACC,iBAAkB,EAAA,EAAA,OAAA,EAAkB,SAAS,YAAc,EAAA,QAAA,EAAU,aACnE,SAAY,GAAA,WAAA,IAAe,aAAa,UAC3C,CACF,CACF,CACF,CAAA;AAAA;AAGN;AAEA,aAAA,CAAc,WAAc,GAAA,eAAA;;;;"}