hazo_config 1.4.2 → 2.0.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.
- package/MIGRATION_V2.md +531 -0
- package/README.md +201 -10
- package/dist/components/app_config.d.ts +1 -1
- package/dist/components/app_config.d.ts.map +1 -1
- package/dist/components/app_config.js +123 -86
- package/dist/components/app_config_list_editor/app_config_list_editor.d.ts +7 -0
- package/dist/components/app_config_list_editor/app_config_list_editor.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/app_config_list_editor.js +128 -0
- package/dist/components/app_config_list_editor/components/color_swatch_picker.d.ts +9 -0
- package/dist/components/app_config_list_editor/components/color_swatch_picker.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/color_swatch_picker.js +15 -0
- package/dist/components/app_config_list_editor/components/delete_dialog.d.ts +10 -0
- package/dist/components/app_config_list_editor/components/delete_dialog.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/delete_dialog.js +9 -0
- package/dist/components/app_config_list_editor/components/edit_modal.d.ts +19 -0
- package/dist/components/app_config_list_editor/components/edit_modal.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/edit_modal.js +97 -0
- package/dist/components/app_config_list_editor/components/empty_state.d.ts +8 -0
- package/dist/components/app_config_list_editor/components/empty_state.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/empty_state.js +8 -0
- package/dist/components/app_config_list_editor/components/list_item_row.d.ts +14 -0
- package/dist/components/app_config_list_editor/components/list_item_row.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/list_item_row.js +14 -0
- package/dist/components/app_config_list_editor/components/save_status_indicator.d.ts +7 -0
- package/dist/components/app_config_list_editor/components/save_status_indicator.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/save_status_indicator.js +25 -0
- package/dist/components/app_config_list_editor/components/search_bar.d.ts +10 -0
- package/dist/components/app_config_list_editor/components/search_bar.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/components/search_bar.js +8 -0
- package/dist/components/app_config_list_editor/index.d.ts +3 -0
- package/dist/components/app_config_list_editor/index.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/index.js +2 -0
- package/dist/components/app_config_list_editor/types.d.ts +93 -0
- package/dist/components/app_config_list_editor/types.d.ts.map +1 -0
- package/dist/components/app_config_list_editor/types.js +14 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +26 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +33 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +22 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +8 -0
- package/dist/components/use_app_config.d.ts +3 -4
- package/dist/components/use_app_config.d.ts.map +1 -1
- package/dist/components/use_app_config.js +51 -17
- package/dist/lib/app_config_types.d.ts +19 -17
- package/dist/lib/app_config_types.d.ts.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
3
|
+
declare const AlertDialog: React.FC<AlertDialogPrimitive.AlertDialogProps>;
|
|
4
|
+
declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
declare const AlertDialogPortal: React.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
|
|
6
|
+
declare const AlertDialogOverlay: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const AlertDialogHeader: {
|
|
9
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
declare const AlertDialogFooter: {
|
|
13
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
17
|
+
declare const AlertDialogDescription: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
18
|
+
declare const AlertDialogAction: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
19
|
+
declare const AlertDialogCancel: React.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
20
|
+
export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
21
|
+
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAKpE,QAAA,MAAM,WAAW,iDAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,wHAA+B,CAAA;AAEvD,QAAA,MAAM,iBAAiB,uDAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,wKAYtB,CAAA;AAGF,QAAA,MAAM,kBAAkB,wKAetB,CAAA;AAGF,QAAA,MAAM,iBAAiB;8BAGpB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,iBAAiB;8BAGpB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,gBAAgB,8KASpB,CAAA;AAGF,QAAA,MAAM,sBAAsB,wLAS1B,CAAA;AAIF,QAAA,MAAM,iBAAiB,6KASrB,CAAA;AAGF,QAAA,MAAM,iBAAiB,6KAarB,CAAA;AAGF,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
4
|
+
import { cn } from "../../lib/utils.js";
|
|
5
|
+
import { buttonVariants } from "./button.js";
|
|
6
|
+
const AlertDialog = AlertDialogPrimitive.Root;
|
|
7
|
+
const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
8
|
+
const AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
9
|
+
const AlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Overlay, { className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className), ...props, ref: ref })));
|
|
10
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
11
|
+
const AlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (_jsxs(AlertDialogPortal, { children: [_jsx(AlertDialogOverlay, {}), _jsx(AlertDialogPrimitive.Content, { ref: ref, className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className), ...props })] })));
|
|
12
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
13
|
+
const AlertDialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props }));
|
|
14
|
+
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
15
|
+
const AlertDialogFooter = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
|
|
16
|
+
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
17
|
+
const AlertDialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold", className), ...props })));
|
|
18
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
19
|
+
const AlertDialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Description, { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
|
|
20
|
+
AlertDialogDescription.displayName =
|
|
21
|
+
AlertDialogPrimitive.Description.displayName;
|
|
22
|
+
const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Action, { ref: ref, className: cn(buttonVariants(), className), ...props })));
|
|
23
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
24
|
+
const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Cancel, { ref: ref, className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className), ...props })));
|
|
25
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
26
|
+
export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "link" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/dist/types.js").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export { Button, buttonVariants };
|
|
12
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;sFA2BnB,CAAA;AAED,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
|
+
const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
10
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
11
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
12
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
13
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
14
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
default: "h-10 px-4 py-2",
|
|
18
|
+
sm: "h-9 rounded-md px-3",
|
|
19
|
+
lg: "h-11 rounded-md px-8",
|
|
20
|
+
icon: "h-10 w-10",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
variant: "default",
|
|
25
|
+
size: "default",
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
29
|
+
const Comp = asChild ? Slot : "button";
|
|
30
|
+
return (_jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props }));
|
|
31
|
+
});
|
|
32
|
+
Button.displayName = "Button";
|
|
33
|
+
export { Button, buttonVariants };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
3
|
+
declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
|
|
4
|
+
declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
|
|
6
|
+
declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const DialogHeader: {
|
|
10
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
declare const DialogFooter: {
|
|
14
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
18
|
+
declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
19
|
+
export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
|
|
20
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,QAAA,MAAM,MAAM,uCAAuB,CAAA;AAEnC,QAAA,MAAM,aAAa,8GAA0B,CAAA;AAE7C,QAAA,MAAM,YAAY,6CAAyB,CAAA;AAE3C,QAAA,MAAM,WAAW,4GAAwB,CAAA;AAEzC,QAAA,MAAM,aAAa,8JAYjB,CAAA;AAGF,QAAA,MAAM,aAAa,8JAqBjB,CAAA;AAGF,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,WAAW,oKAYf,CAAA;AAGF,QAAA,MAAM,iBAAiB,8KASrB,CAAA;AAGF,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
4
|
+
import { X } from "lucide-react";
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
|
+
const Dialog = DialogPrimitive.Root;
|
|
7
|
+
const DialogTrigger = DialogPrimitive.Trigger;
|
|
8
|
+
const DialogPortal = DialogPrimitive.Portal;
|
|
9
|
+
const DialogClose = DialogPrimitive.Close;
|
|
10
|
+
const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className), ...props })));
|
|
11
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
12
|
+
const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
|
|
13
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
14
|
+
const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
|
|
15
|
+
DialogHeader.displayName = "DialogHeader";
|
|
16
|
+
const DialogFooter = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
|
|
17
|
+
DialogFooter.displayName = "DialogFooter";
|
|
18
|
+
const DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props })));
|
|
19
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
20
|
+
const DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
|
|
21
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
22
|
+
export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
3
|
+
export { Input };
|
|
4
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,8KAcV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
const Input = React.forwardRef(({ className, type, ...props }, ref) => {
|
|
5
|
+
return (_jsx("input", { type: type, className: cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ref: ref, ...props }));
|
|
6
|
+
});
|
|
7
|
+
Input.displayName = "Input";
|
|
8
|
+
export { Input };
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AppConfigContext, AppConfigItem, UseAppConfigResult } from '../lib/app_config_types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Custom hook for managing database-backed application configuration
|
|
4
|
-
* @param
|
|
5
|
-
* @param context - Context containing org_id and optionally user_id
|
|
4
|
+
* @param context - Context containing scope_id and optionally user_id
|
|
6
5
|
* @param fetch_config - Function to fetch config from database
|
|
7
6
|
* @param save_config - Function to save config to database
|
|
8
7
|
* @param delete_config - Function to delete config from database
|
|
9
8
|
* @returns Object with sections, loading state, error, and CRUD functions
|
|
10
9
|
*/
|
|
11
|
-
export declare function useAppConfig(
|
|
10
|
+
export declare function useAppConfig(context: AppConfigContext, fetch_config: (context: AppConfigContext) => Promise<AppConfigItem[]>, save_config: (item: Omit<AppConfigItem, 'id' | 'created_at' | 'changed_at'>) => Promise<void>, delete_config: (section: string, name: string, context: AppConfigContext) => Promise<void>): UseAppConfigResult;
|
|
12
11
|
//# sourceMappingURL=use_app_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_app_config.d.ts","sourceRoot":"","sources":["../../src/components/use_app_config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"use_app_config.d.ts","sourceRoot":"","sources":["../../src/components/use_app_config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAkBnC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,EACrE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC7F,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GACzF,kBAAkB,CA2JpB"}
|
|
@@ -10,20 +10,19 @@ function items_to_sections(items) {
|
|
|
10
10
|
if (!sections[item.config_section]) {
|
|
11
11
|
sections[item.config_section] = {};
|
|
12
12
|
}
|
|
13
|
-
sections[item.config_section][item.config_name] = item
|
|
13
|
+
sections[item.config_section][item.config_name] = item;
|
|
14
14
|
}
|
|
15
15
|
return sections;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Custom hook for managing database-backed application configuration
|
|
19
|
-
* @param
|
|
20
|
-
* @param context - Context containing org_id and optionally user_id
|
|
19
|
+
* @param context - Context containing scope_id and optionally user_id
|
|
21
20
|
* @param fetch_config - Function to fetch config from database
|
|
22
21
|
* @param save_config - Function to save config to database
|
|
23
22
|
* @param delete_config - Function to delete config from database
|
|
24
23
|
* @returns Object with sections, loading state, error, and CRUD functions
|
|
25
24
|
*/
|
|
26
|
-
export function useAppConfig(
|
|
25
|
+
export function useAppConfig(context, fetch_config, save_config, delete_config) {
|
|
27
26
|
const [sections, set_sections] = useState({});
|
|
28
27
|
const [is_loading, set_is_loading] = useState(true);
|
|
29
28
|
const [error, set_error] = useState(null);
|
|
@@ -34,7 +33,7 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
34
33
|
set_is_loading(true);
|
|
35
34
|
set_error(null);
|
|
36
35
|
try {
|
|
37
|
-
const items = await fetch_config(
|
|
36
|
+
const items = await fetch_config(context);
|
|
38
37
|
const sections_data = items_to_sections(items);
|
|
39
38
|
set_sections(sections_data);
|
|
40
39
|
}
|
|
@@ -44,18 +43,20 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
44
43
|
finally {
|
|
45
44
|
set_is_loading(false);
|
|
46
45
|
}
|
|
47
|
-
}, [fetch_config,
|
|
46
|
+
}, [fetch_config, context]);
|
|
48
47
|
/**
|
|
49
48
|
* Set a configuration value
|
|
50
49
|
*/
|
|
51
|
-
const set_value = useCallback(async (section, key, value) => {
|
|
50
|
+
const set_value = useCallback(async (section, key, value, type) => {
|
|
52
51
|
try {
|
|
53
52
|
const item = {
|
|
54
|
-
|
|
55
|
-
user_id:
|
|
53
|
+
scope_id: context.scope_id,
|
|
54
|
+
user_id: context.user_id ?? null,
|
|
56
55
|
config_section: section,
|
|
57
56
|
config_name: key,
|
|
58
|
-
|
|
57
|
+
config_value_text: type === 'general' ? String(value) : '',
|
|
58
|
+
config_value_json: type === 'json' ? (typeof value === 'string' ? JSON.parse(value) : value) : {},
|
|
59
|
+
config_type: type
|
|
59
60
|
};
|
|
60
61
|
await save_config(item);
|
|
61
62
|
// Update local state optimistically
|
|
@@ -63,7 +64,7 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
63
64
|
...prev,
|
|
64
65
|
[section]: {
|
|
65
66
|
...(prev[section] || {}),
|
|
66
|
-
[key]:
|
|
67
|
+
[key]: item
|
|
67
68
|
}
|
|
68
69
|
}));
|
|
69
70
|
}
|
|
@@ -71,13 +72,13 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
71
72
|
set_error(err instanceof Error ? err : new Error(String(err)));
|
|
72
73
|
throw err;
|
|
73
74
|
}
|
|
74
|
-
}, [save_config, context
|
|
75
|
+
}, [save_config, context]);
|
|
75
76
|
/**
|
|
76
77
|
* Delete a configuration value
|
|
77
78
|
*/
|
|
78
79
|
const delete_value = useCallback(async (section, key) => {
|
|
79
80
|
try {
|
|
80
|
-
await delete_config(section, key,
|
|
81
|
+
await delete_config(section, key, context);
|
|
81
82
|
// Update local state optimistically
|
|
82
83
|
set_sections(prev => {
|
|
83
84
|
const new_sections = { ...prev };
|
|
@@ -99,7 +100,7 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
99
100
|
set_error(err instanceof Error ? err : new Error(String(err)));
|
|
100
101
|
throw err;
|
|
101
102
|
}
|
|
102
|
-
}, [delete_config,
|
|
103
|
+
}, [delete_config, context]);
|
|
103
104
|
/**
|
|
104
105
|
* Delete an entire section
|
|
105
106
|
*/
|
|
@@ -109,7 +110,7 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
109
110
|
if (section_data) {
|
|
110
111
|
// Delete all keys in the section
|
|
111
112
|
for (const key of Object.keys(section_data)) {
|
|
112
|
-
await delete_config(section, key,
|
|
113
|
+
await delete_config(section, key, context);
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
// Update local state optimistically
|
|
@@ -123,7 +124,39 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
123
124
|
set_error(err instanceof Error ? err : new Error(String(err)));
|
|
124
125
|
throw err;
|
|
125
126
|
}
|
|
126
|
-
}, [delete_config, sections,
|
|
127
|
+
}, [delete_config, sections, context]);
|
|
128
|
+
/**
|
|
129
|
+
* Change the type of a configuration value
|
|
130
|
+
*/
|
|
131
|
+
const change_type = useCallback(async (section, key, new_type) => {
|
|
132
|
+
try {
|
|
133
|
+
const current_item = sections[section]?.[key];
|
|
134
|
+
if (!current_item) {
|
|
135
|
+
throw new Error(`Config item ${section}.${key} not found`);
|
|
136
|
+
}
|
|
137
|
+
let new_value;
|
|
138
|
+
if (new_type === 'json') {
|
|
139
|
+
// Convert general → json
|
|
140
|
+
const text = current_item.config_value_text;
|
|
141
|
+
try {
|
|
142
|
+
new_value = JSON.parse(text);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Fallback: wrap in object
|
|
146
|
+
new_value = { value: text };
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Convert json → general
|
|
151
|
+
new_value = JSON.stringify(current_item.config_value_json);
|
|
152
|
+
}
|
|
153
|
+
await set_value(section, key, new_value, new_type);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
set_error(err instanceof Error ? err : new Error(String(err)));
|
|
157
|
+
throw err;
|
|
158
|
+
}
|
|
159
|
+
}, [sections, set_value]);
|
|
127
160
|
// Load config on mount and when dependencies change
|
|
128
161
|
useEffect(() => {
|
|
129
162
|
reload();
|
|
@@ -135,6 +168,7 @@ export function useAppConfig(level, context, fetch_config, save_config, delete_c
|
|
|
135
168
|
reload,
|
|
136
169
|
set_value,
|
|
137
170
|
delete_value,
|
|
138
|
-
delete_section
|
|
171
|
+
delete_section,
|
|
172
|
+
change_type
|
|
139
173
|
};
|
|
140
174
|
}
|
|
@@ -5,19 +5,21 @@
|
|
|
5
5
|
* configuration in the hazo_app_config database table using hazo_connect.
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
8
|
-
* Configuration
|
|
8
|
+
* Configuration type - determines how the value is stored and edited
|
|
9
9
|
*/
|
|
10
|
-
export type
|
|
10
|
+
export type ConfigType = 'json' | 'general';
|
|
11
11
|
/**
|
|
12
12
|
* Single configuration item from the database
|
|
13
13
|
*/
|
|
14
14
|
export interface AppConfigItem {
|
|
15
15
|
id?: string;
|
|
16
|
-
|
|
16
|
+
scope_id: string | null;
|
|
17
17
|
user_id: string | null;
|
|
18
18
|
config_section: string;
|
|
19
19
|
config_name: string;
|
|
20
|
-
|
|
20
|
+
config_value_text: string;
|
|
21
|
+
config_value_json: object;
|
|
22
|
+
config_type: ConfigType;
|
|
21
23
|
created_at?: string;
|
|
22
24
|
changed_at?: string;
|
|
23
25
|
}
|
|
@@ -25,7 +27,7 @@ export interface AppConfigItem {
|
|
|
25
27
|
* Context for identifying config ownership
|
|
26
28
|
*/
|
|
27
29
|
export interface AppConfigContext {
|
|
28
|
-
|
|
30
|
+
scope_id: string;
|
|
29
31
|
user_id?: string;
|
|
30
32
|
}
|
|
31
33
|
/**
|
|
@@ -33,18 +35,14 @@ export interface AppConfigContext {
|
|
|
33
35
|
*/
|
|
34
36
|
export interface AppConfigProps {
|
|
35
37
|
/**
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
level: ConfigLevel;
|
|
39
|
-
/**
|
|
40
|
-
* The context containing org_id and optionally user_id
|
|
38
|
+
* The context containing scope_id and optionally user_id
|
|
41
39
|
*/
|
|
42
40
|
context: AppConfigContext;
|
|
43
41
|
/**
|
|
44
42
|
* Function to fetch config items from the database
|
|
45
|
-
* Should return all config items for the given
|
|
43
|
+
* Should return all config items for the given context
|
|
46
44
|
*/
|
|
47
|
-
fetch_config: (
|
|
45
|
+
fetch_config: (context: AppConfigContext) => Promise<AppConfigItem[]>;
|
|
48
46
|
/**
|
|
49
47
|
* Function to save a config item to the database
|
|
50
48
|
* Should handle both insert and update
|
|
@@ -53,7 +51,7 @@ export interface AppConfigProps {
|
|
|
53
51
|
/**
|
|
54
52
|
* Function to delete a config item from the database
|
|
55
53
|
*/
|
|
56
|
-
delete_config: (section: string, name: string,
|
|
54
|
+
delete_config: (section: string, name: string, context: AppConfigContext) => Promise<void>;
|
|
57
55
|
/**
|
|
58
56
|
* Additional CSS classes
|
|
59
57
|
*/
|
|
@@ -79,7 +77,7 @@ export interface AppConfigProps {
|
|
|
79
77
|
*/
|
|
80
78
|
disable_auto_mask?: boolean;
|
|
81
79
|
/**
|
|
82
|
-
* Title to display
|
|
80
|
+
* Title to display
|
|
83
81
|
*/
|
|
84
82
|
title?: string;
|
|
85
83
|
}
|
|
@@ -88,9 +86,9 @@ export interface AppConfigProps {
|
|
|
88
86
|
*/
|
|
89
87
|
export interface UseAppConfigResult {
|
|
90
88
|
/**
|
|
91
|
-
* All configuration sections with their
|
|
89
|
+
* All configuration sections with their items (full AppConfigItem objects)
|
|
92
90
|
*/
|
|
93
|
-
sections: Record<string, Record<string,
|
|
91
|
+
sections: Record<string, Record<string, AppConfigItem>>;
|
|
94
92
|
/**
|
|
95
93
|
* Loading state
|
|
96
94
|
*/
|
|
@@ -106,7 +104,7 @@ export interface UseAppConfigResult {
|
|
|
106
104
|
/**
|
|
107
105
|
* Set a configuration value
|
|
108
106
|
*/
|
|
109
|
-
set_value: (section: string, key: string, value: string) => Promise<void>;
|
|
107
|
+
set_value: (section: string, key: string, value: string | object, type: ConfigType) => Promise<void>;
|
|
110
108
|
/**
|
|
111
109
|
* Delete a configuration value
|
|
112
110
|
*/
|
|
@@ -115,5 +113,9 @@ export interface UseAppConfigResult {
|
|
|
115
113
|
* Delete an entire section
|
|
116
114
|
*/
|
|
117
115
|
delete_section: (section: string) => Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Change the type of a configuration value
|
|
118
|
+
*/
|
|
119
|
+
change_type: (section: string, key: string, new_type: ConfigType) => Promise<void>;
|
|
118
120
|
}
|
|
119
121
|
//# sourceMappingURL=app_config_types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_config_types.d.ts","sourceRoot":"","sources":["../../src/lib/app_config_types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"app_config_types.d.ts","sourceRoot":"","sources":["../../src/lib/app_config_types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,gBAAgB,CAAA;IACzB;;;OAGG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACrE;;;OAGG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7F;;OAEG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1F;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IACvD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B;;OAEG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpG;;OAEG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D;;OAEG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnF"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
export { MockConfigProvider } from './mock_config_provider.js';
|
|
12
12
|
export { ConfigErrorCode } from './types.js';
|
|
13
13
|
export type { ConfigProvider, HazoConfigOptions, Logger, HazoConfigError, LogData } from './types.js';
|
|
14
|
-
export type {
|
|
14
|
+
export type { ConfigType, AppConfigItem, AppConfigContext, AppConfigProps, UseAppConfigResult } from './app_config_types.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,OAAO,EACR,MAAM,YAAY,CAAA;AAGnB,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,OAAO,EACR,MAAM,YAAY,CAAA;AAGnB,YAAY,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EACnB,MAAM,uBAAuB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Config wrapper with error handling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -52,10 +52,13 @@
|
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://github.com/pub12/hazo_config#readme",
|
|
54
54
|
"dependencies": {
|
|
55
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
56
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
57
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
55
58
|
"class-variance-authority": "^0.7.0",
|
|
56
59
|
"clsx": "^2.1.0",
|
|
57
60
|
"ini": "^4.1.0",
|
|
58
|
-
"lucide-react": "^0.
|
|
61
|
+
"lucide-react": "^0.553.0",
|
|
59
62
|
"server-only": "^0.0.1",
|
|
60
63
|
"tailwind-merge": "^2.2.0"
|
|
61
64
|
},
|
|
@@ -82,7 +85,7 @@
|
|
|
82
85
|
"storybook": "^8.0.0",
|
|
83
86
|
"tailwindcss": "^3.4.1",
|
|
84
87
|
"typescript": "^5.3.3",
|
|
85
|
-
"vite": "^
|
|
88
|
+
"vite": "^6.0.0",
|
|
86
89
|
"vitest": "^1.6.1"
|
|
87
90
|
},
|
|
88
91
|
"peerDependencies": {
|