@phsa.tec/design-system-react
Version:
A modern React component library built with TypeScript, Tailwind CSS, and Radix UI.
1,185 lines (1,159 loc) • 168 kB
JavaScript
"use client"
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop];
}
return target;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
AlertDialog: () => AlertDialog2,
Avatar: () => Avatar,
AvatarFallback: () => AvatarFallback,
AvatarImage: () => AvatarImage,
Badge: () => Badge,
Breadcrumb: () => Breadcrumb,
BreadcrumbEllipsis: () => BreadcrumbEllipsis,
BreadcrumbItem: () => BreadcrumbItem,
BreadcrumbLink: () => BreadcrumbLink,
BreadcrumbList: () => BreadcrumbList,
BreadcrumbPage: () => BreadcrumbPage,
BreadcrumbSeparator: () => BreadcrumbSeparator,
Button: () => Button2,
Checkbox: () => Checkbox2,
Collapsible: () => Collapsible,
CollapsibleContent: () => CollapsibleContent2,
CollapsibleTrigger: () => CollapsibleTrigger2,
CustomDrawer: () => CustomDrawer,
DataPairList: () => DataPairList,
Dialog: () => Dialog2,
DialogWithForm: () => DialogWithForm,
Drawer: () => Drawer,
DrawerClose: () => DrawerClose,
DrawerContent: () => DrawerContent,
DrawerDescription: () => DrawerDescription,
DrawerFooter: () => DrawerFooter,
DrawerHeader: () => DrawerHeader,
DrawerOverlay: () => DrawerOverlay,
DrawerPortal: () => DrawerPortal,
DrawerTitle: () => DrawerTitle,
DrawerTrigger: () => DrawerTrigger,
DropdownMenu: () => DropdownMenu,
DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
DropdownMenuContent: () => DropdownMenuContent,
DropdownMenuGroup: () => DropdownMenuGroup,
DropdownMenuItem: () => DropdownMenuItem,
DropdownMenuLabel: () => DropdownMenuLabel,
DropdownMenuPortal: () => DropdownMenuPortal,
DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
DropdownMenuRadioItem: () => DropdownMenuRadioItem,
DropdownMenuSeparator: () => DropdownMenuSeparator,
DropdownMenuShortcut: () => DropdownMenuShortcut,
DropdownMenuSub: () => DropdownMenuSub,
DropdownMenuSubContent: () => DropdownMenuSubContent,
DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
DropdownMenuTrigger: () => DropdownMenuTrigger,
DynamicTable: () => DynamicTable,
Form: () => Form,
FormControl: () => FormControl,
FormDescription: () => FormDescription,
FormField: () => FormField,
FormItem: () => FormItem,
FormLabel: () => FormLabel,
FormMessage: () => FormMessage,
Icon: () => Icon2,
Input: () => Input2,
MaskInput: () => MaskInput,
MultiSelect: () => MultiSelect,
MultipleInput: () => MultipleInput,
MultipleMaskInput: () => MultipleMaskInput,
NavUser: () => NavUser,
NumberInput: () => NumberInput,
PageLayout: () => PageLayout,
Select: () => Select2,
Separator: () => Separator3,
Sheet: () => Sheet2,
Sidebar: () => Sidebar2,
Spinner: () => Spinner,
Steps: () => Steps,
Switch: () => Switch2,
Tabs: () => Tabs2,
Text: () => Text,
Toaster: () => Toaster,
badgeVariants: () => badgeVariants,
reducer: () => reducer,
toast: () => toast,
useFormContext: () => import_react_hook_form2.useFormContext,
useFormField: () => useFormField,
useToast: () => useToast
});
module.exports = __toCommonJS(src_exports);
// src/components/dataDisplay/Table/components/DynamicTable/index.tsx
var React5 = __toESM(require("react"));
var import_react_table = require("@tanstack/react-table");
// src/components/ui/table.tsx
var React = __toESM(require("react"));
// src/lib/utils.ts
var import_clsx = require("clsx");
var import_tailwind_merge = require("tailwind-merge");
function cn(...inputs) {
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
}
// src/components/ui/table.tsx
var import_jsx_runtime = require("react/jsx-runtime");
var Table = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"table",
__spreadValues({
ref,
className: cn("w-full caption-bottom text-sm", className)
}, props)
) });
});
Table.displayName = "Table";
var TableHeader = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("thead", __spreadValues({ ref, className: cn("[&_tr]:border-b", className) }, props));
});
TableHeader.displayName = "TableHeader";
var TableBody = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"tbody",
__spreadValues({
ref,
className: cn("[&_tr:last-child]:border-0", className)
}, props)
);
});
TableBody.displayName = "TableBody";
var TableFooter = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"tfoot",
__spreadValues({
ref,
className: cn(
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
className
)
}, props)
);
});
TableFooter.displayName = "TableFooter";
var TableRow = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"tr",
__spreadValues({
ref,
className: cn(
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
className
)
}, props)
);
});
TableRow.displayName = "TableRow";
var TableHead = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"th",
__spreadValues({
ref,
className: cn(
"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
className
)
}, props)
);
});
TableHead.displayName = "TableHead";
var TableCell = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"td",
__spreadValues({
ref,
className: cn(
"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
className
)
}, props)
);
});
TableCell.displayName = "TableCell";
var TableCaption = React.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"caption",
__spreadValues({
ref,
className: cn("mt-4 text-sm text-muted-foreground", className)
}, props)
);
});
TableCaption.displayName = "TableCaption";
// src/components/dataDisplay/Table/components/DynamicTable/data-table-view-options.tsx
var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
var import_react_icons = require("@radix-ui/react-icons");
// src/components/ui/button.tsx
var React2 = __toESM(require("react"));
var import_react_slot = require("@radix-ui/react-slot");
var import_class_variance_authority = require("class-variance-authority");
var import_jsx_runtime2 = require("react/jsx-runtime");
var buttonVariants = (0, import_class_variance_authority.cva)(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
{
variants: {
variant: {
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline"
},
size: {
default: "h-9 px-4 py-2",
sm: "h-8 rounded-md px-3 text-xs",
lg: "h-10 rounded-md px-8",
icon: "h-9 w-9"
}
},
defaultVariants: {
variant: "default",
size: "default"
}
}
);
var Button = React2.forwardRef(
(_a, ref) => {
var _b = _a, { className, variant, size, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild"]);
const Comp = asChild ? import_react_slot.Slot : "button";
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
Comp,
__spreadValues({
className: cn(buttonVariants({ variant, size, className })),
ref
}, props)
);
}
);
Button.displayName = "Button";
// src/components/ui/dropdown-menu.tsx
var React3 = __toESM(require("react"));
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
var import_lucide_react = require("lucide-react");
var import_jsx_runtime3 = require("react/jsx-runtime");
var DropdownMenu = DropdownMenuPrimitive.Root;
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
var DropdownMenuSubTrigger = React3.forwardRef((_a, ref) => {
var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
DropdownMenuPrimitive.SubTrigger,
__spreadProps(__spreadValues({
ref,
className: cn(
"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
inset && "pl-8",
className
)
}, props), {
children: [
children,
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronRight, { className: "ml-auto" })
]
})
);
});
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
var DropdownMenuSubContent = React3.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
DropdownMenuPrimitive.SubContent,
__spreadValues({
ref,
className: cn(
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
className
)
}, props)
);
});
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
var DropdownMenuContent = React3.forwardRef((_a, ref) => {
var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
DropdownMenuPrimitive.Content,
__spreadValues({
ref,
sideOffset,
className: cn(
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
"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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
className
)
}, props)
) });
});
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
var DropdownMenuItem = React3.forwardRef((_a, ref) => {
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
DropdownMenuPrimitive.Item,
__spreadValues({
ref,
className: cn(
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
inset && "pl-8",
className
)
}, props)
);
});
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
var DropdownMenuCheckboxItem = React3.forwardRef((_a, ref) => {
var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
DropdownMenuPrimitive.CheckboxItem,
__spreadProps(__spreadValues({
ref,
className: cn(
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
className
),
checked
}, props), {
children: [
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.Check, { className: "h-4 w-4" }) }) }),
children
]
})
);
});
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
var DropdownMenuRadioItem = React3.forwardRef((_a, ref) => {
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
DropdownMenuPrimitive.RadioItem,
__spreadProps(__spreadValues({
ref,
className: cn(
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
className
)
}, props), {
children: [
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.Circle, { className: "h-2 w-2 fill-current" }) }) }),
children
]
})
);
});
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
var DropdownMenuLabel = React3.forwardRef((_a, ref) => {
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
DropdownMenuPrimitive.Label,
__spreadValues({
ref,
className: cn(
"px-2 py-1.5 text-sm font-semibold",
inset && "pl-8",
className
)
}, props)
);
});
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
var DropdownMenuSeparator = React3.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
DropdownMenuPrimitive.Separator,
__spreadValues({
ref,
className: cn("-mx-1 my-1 h-px bg-muted", className)
}, props)
);
});
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
var DropdownMenuShortcut = (_a) => {
var _b = _a, {
className
} = _b, props = __objRest(_b, [
"className"
]);
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
"span",
__spreadValues({
className: cn("ml-auto text-xs tracking-widest opacity-60", className)
}, props)
);
};
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
// src/components/dataDisplay/Table/components/DynamicTable/data-table-view-options.tsx
var import_jsx_runtime4 = require("react/jsx-runtime");
function DataTableViewOptions({
table
}) {
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(DropdownMenu, { children: [
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
Button,
{
variant: "outline",
size: "sm",
className: "ml-auto hidden h-8 lg:flex",
children: [
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_icons.MixerHorizontalIcon, { className: "mr-2 h-4 w-4" }),
"Colunas"
]
}
) }),
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(DropdownMenuContent, { align: "end", className: "w-[150px]", children: [
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DropdownMenuLabel, { children: "Colunas vis\xEDveis" }),
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DropdownMenuSeparator, {}),
table.getAllColumns().filter(
(column) => typeof column.accessorFn !== "undefined" && column.getCanHide()
).map((column) => {
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
DropdownMenuCheckboxItem,
{
className: "capitalize",
checked: column.getIsVisible(),
onCheckedChange: (value) => column.toggleVisibility(!!value),
children: column.id
},
column.id
);
})
] })
] });
}
// src/components/dataDisplay/Table/components/DynamicTable/data-table-toolbar.tsx
var import_jsx_runtime5 = require("react/jsx-runtime");
function DataTableToolbar({
table,
filters,
showColumnVisibility
}) {
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center justify-between", children: [
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex flex-1 items-center space-x-2", children: filters }),
showColumnVisibility && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DataTableViewOptions, { table })
] });
}
// src/components/dataDisplay/Table/components/DynamicTable/data-table-pagination.tsx
var import_react_icons2 = require("@radix-ui/react-icons");
// src/components/ui/select.tsx
var React4 = __toESM(require("react"));
var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
var import_lucide_react2 = require("lucide-react");
var import_jsx_runtime6 = require("react/jsx-runtime");
var Select = SelectPrimitive.Root;
var SelectValue = SelectPrimitive.Value;
var SelectTrigger = React4.forwardRef((_a, ref) => {
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
SelectPrimitive.Trigger,
__spreadProps(__spreadValues({
ref,
className: cn(
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
className
)
}, props), {
children: [
children,
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
]
})
);
});
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
var SelectScrollUpButton = React4.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
SelectPrimitive.ScrollUpButton,
__spreadProps(__spreadValues({
ref,
className: cn(
"flex cursor-default items-center justify-center py-1",
className
)
}, props), {
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronUp, { className: "h-4 w-4" })
})
);
});
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
var SelectScrollDownButton = React4.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
SelectPrimitive.ScrollDownButton,
__spreadProps(__spreadValues({
ref,
className: cn(
"flex cursor-default items-center justify-center py-1",
className
)
}, props), {
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronDown, { className: "h-4 w-4" })
})
);
});
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
var SelectContent = React4.forwardRef((_a, ref) => {
var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
SelectPrimitive.Content,
__spreadProps(__spreadValues({
ref,
className: cn(
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
className
),
position
}, props), {
children: [
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectScrollUpButton, {}),
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
SelectPrimitive.Viewport,
{
className: cn(
"p-1",
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
),
children
}
),
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectScrollDownButton, {})
]
})
) });
});
SelectContent.displayName = SelectPrimitive.Content.displayName;
var SelectLabel = React4.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
SelectPrimitive.Label,
__spreadValues({
ref,
className: cn("px-2 py-1.5 text-sm font-semibold", className)
}, props)
);
});
SelectLabel.displayName = SelectPrimitive.Label.displayName;
var SelectItem = React4.forwardRef((_a, ref) => {
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
SelectPrimitive.Item,
__spreadProps(__spreadValues({
ref,
className: cn(
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
className
)
}, props), {
children: [
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Check, { className: "h-4 w-4" }) }) }),
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SelectPrimitive.ItemText, { children })
]
})
);
});
SelectItem.displayName = SelectPrimitive.Item.displayName;
var SelectSeparator = React4.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
SelectPrimitive.Separator,
__spreadValues({
ref,
className: cn("-mx-1 my-1 h-px bg-muted", className)
}, props)
);
});
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
// src/components/dataDisplay/Table/components/DynamicTable/data-table-pagination.tsx
var import_jsx_runtime7 = require("react/jsx-runtime");
function DataTablePagination({
table,
pageSizeOptions = [10, 20, 30, 40, 50]
}) {
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center justify-between px-2", children: [
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex-1 text-sm text-muted-foreground", children: [
table.getFilteredSelectedRowModel().rows.length,
" de",
" ",
table.getFilteredRowModel().rows.length,
" linha(s) selecionada(s)."
] }),
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center space-x-6 lg:space-x-8", children: [
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center space-x-2", children: [
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-sm font-medium", children: "Linhas por p\xE1gina" }),
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
Select,
{
value: `${table.getState().pagination.pageSize}`,
onValueChange: (value) => {
table.setPageSize(Number(value));
},
children: [
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectTrigger, { className: "h-8 w-[70px]", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectValue, { placeholder: table.getState().pagination.pageSize }) }),
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectContent, { side: "top", children: pageSizeOptions.map((pageSize) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectItem, { value: `${pageSize}`, children: pageSize }, pageSize)) })
]
}
)
] }),
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex w-[100px] items-center justify-center text-sm font-medium", children: [
"P\xE1gina ",
table.getState().pagination.pageIndex + 1,
" de",
" ",
table.getPageCount()
] }),
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center space-x-2", children: [
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
Button,
{
variant: "outline",
className: "hidden h-8 w-8 p-0 lg:flex",
onClick: () => table.setPageIndex(0),
disabled: !table.getCanPreviousPage(),
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_icons2.DoubleArrowLeftIcon, { className: "h-4 w-4" })
}
),
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
Button,
{
variant: "outline",
className: "h-8 w-8 p-0",
onClick: () => table.previousPage(),
disabled: !table.getCanPreviousPage(),
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_icons2.ChevronLeftIcon, { className: "h-4 w-4" })
}
),
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
Button,
{
variant: "outline",
className: "h-8 w-8 p-0",
onClick: () => table.nextPage(),
disabled: !table.getCanNextPage(),
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_icons2.ChevronRightIcon, { className: "h-4 w-4" })
}
),
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
Button,
{
variant: "outline",
className: "hidden h-8 w-8 p-0 lg:flex",
onClick: () => table.setPageIndex(table.getPageCount() - 1),
disabled: !table.getCanNextPage(),
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_icons2.DoubleArrowRightIcon, { className: "h-4 w-4" })
}
)
] })
] })
] });
}
// src/components/dataDisplay/Table/components/DynamicTable/data-table-column-header.tsx
var import_react_icons3 = require("@radix-ui/react-icons");
var import_jsx_runtime8 = require("react/jsx-runtime");
function DataTableColumnHeader({
column,
title,
className
}) {
if (!column.getCanSort()) {
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn(className), children: title });
}
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("flex items-center space-x-2", className), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenu, { children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
Button,
{
variant: "ghost",
size: "sm",
className: "-ml-3 h-8 data-[state=open]:bg-accent",
children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: title }),
column.getIsSorted() === "desc" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.ArrowDownIcon, { className: "ml-2 h-4 w-4" }) : column.getIsSorted() === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.ArrowUpIcon, { className: "ml-2 h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.CaretSortIcon, { className: "ml-2 h-4 w-4" })
]
}
) }),
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuContent, { align: "start", children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuItem, { onClick: () => column.toggleSorting(false), children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.ArrowUpIcon, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }),
"Crescente"
] }),
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuItem, { onClick: () => column.toggleSorting(true), children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.ArrowDownIcon, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }),
"Decrescente"
] }),
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownMenuSeparator, {}),
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuItem, { onClick: () => column.toggleVisibility(false), children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_icons3.EyeNoneIcon, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }),
"Ocultar"
] })
] })
] }) });
}
// src/components/dataDisplay/Table/components/DynamicTable/index.tsx
var import_jsx_runtime9 = require("react/jsx-runtime");
function DynamicTable({
data,
columns,
className,
toolbar,
pagination: showPagination = true,
sorting: showSorting = true,
columnVisibility: showColumnVisibility = true,
filters,
rowsPerPage = [10, 20, 30, 40, 50],
defaultSort = [],
defaultVisibility = {}
}) {
var _a;
const [sorting, setSorting] = React5.useState(defaultSort);
const [columnVisibility, setColumnVisibility] = React5.useState(defaultVisibility);
const [{ pageIndex, pageSize }, setPagination] = React5.useState({
pageIndex: 0,
pageSize: rowsPerPage[0]
});
const pagination = React5.useMemo(
() => ({
pageIndex,
pageSize
}),
[pageIndex, pageSize]
);
const table = (0, import_react_table.useReactTable)({
data,
columns,
getCoreRowModel: (0, import_react_table.getCoreRowModel)(),
onSortingChange: setSorting,
getSortedRowModel: showSorting ? (0, import_react_table.getSortedRowModel)() : void 0,
getPaginationRowModel: (0, import_react_table.getPaginationRowModel)(),
onColumnVisibilityChange: setColumnVisibility,
onPaginationChange: setPagination,
manualPagination: false,
pageCount: Math.ceil(data.length / pageSize),
state: {
sorting,
columnVisibility,
pagination
},
enableSorting: showSorting
});
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "space-y-4", children: [
(toolbar || filters || showColumnVisibility) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
DataTableToolbar,
{
table,
filters,
showColumnVisibility
}
),
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("rounded-md border", className), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Table, { children: [
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableHead, { children: header.isPlaceholder ? null : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
DataTableColumnHeader,
{
column: header.column,
title: header.column.columnDef.header
}
) }, header.id)) }, headerGroup.id)) }),
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableBody, { children: ((_a = table.getRowModel().rows) == null ? void 0 : _a.length) ? table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableCell, { children: (0, import_react_table.flexRender)(
cell.column.columnDef.cell,
cell.getContext()
) }, cell.id)) }, row.id)) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
TableCell,
{
colSpan: columns.length,
className: "h-24 text-center",
children: "Nenhum resultado encontrado."
}
) }) })
] }) }),
showPagination && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DataTablePagination, { table, pageSizeOptions: rowsPerPage })
] });
}
// src/components/ui/badge.tsx
var import_class_variance_authority2 = require("class-variance-authority");
var import_jsx_runtime10 = require("react/jsx-runtime");
var badgeVariants = (0, import_class_variance_authority2.cva)(
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
{
variants: {
variant: {
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
success: "border-transparent bg-success text-primary-foreground shadow hover:bg-success/80",
warning: "border-transparent bg-warning text-primary-foreground shadow hover:bg-warning/80",
outline: "text-foreground"
}
},
defaultVariants: {
variant: "default"
}
}
);
function Badge(_a) {
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", __spreadValues({ className: cn(badgeVariants({ variant }), className) }, props));
}
// src/components/dataDisplay/Icon/Icon.tsx
var import_react = require("react");
var import_react_icons4 = require("react-icons");
var import_jsx_runtime11 = require("react/jsx-runtime");
var Icon2 = (_a) => {
var _b = _a, { name, size = 24 } = _b, rest = __objRest(_b, ["name", "size"]);
const nameIcon = (0, import_react.useMemo)(() => name, [name]);
const iconsModulePath = (0, import_react.useMemo)(
() => ({
// eslint-disable-next-line @typescript-eslint/no-require-imports
md: require("react-icons/md"),
// eslint-disable-next-line @typescript-eslint/no-require-imports
fa: require("react-icons/fa"),
// eslint-disable-next-line @typescript-eslint/no-require-imports
bs: require("react-icons/bs")
}),
[]
);
const typeIcon = (0, import_react.useMemo)(() => {
var _a2;
const matches = [...nameIcon.matchAll(/[A-Z]/g)];
return String(
nameIcon.slice(0, (_a2 = matches[1]) == null ? void 0 : _a2.index) || ""
).toLocaleLowerCase();
}, [nameIcon]);
const Icon3 = (0, import_react.useCallback)(
(props) => {
var _a2, _b2;
try {
if (!typeIcon || !nameIcon) return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
return (_b2 = (_a2 = iconsModulePath[typeIcon])[nameIcon]) == null ? void 0 : _b2.call(_a2, props);
} catch (e) {
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
}
},
[iconsModulePath, nameIcon, typeIcon]
);
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_icons4.IconContext.Provider, { value: { size: String(size) }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon3, __spreadValues({}, rest)) });
};
// src/components/ui/avatar.tsx
var React7 = __toESM(require("react"));
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
var import_jsx_runtime12 = require("react/jsx-runtime");
var Avatar = React7.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
AvatarPrimitive.Root,
__spreadValues({
ref,
className: cn(
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
className
)
}, props)
);
});
Avatar.displayName = AvatarPrimitive.Root.displayName;
var AvatarImage = React7.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
AvatarPrimitive.Image,
__spreadValues({
ref,
className: cn("aspect-square h-full w-full", className)
}, props)
);
});
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
var AvatarFallback = React7.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
AvatarPrimitive.Fallback,
__spreadValues({
ref,
className: cn(
"flex h-full w-full items-center justify-center rounded-full bg-muted",
className
)
}, props)
);
});
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
// src/components/dataDisplay/DataPairList/DataPairList.tsx
var import_lodash = require("lodash");
// src/components/dataDisplay/Text/Text.tsx
var import_class_variance_authority3 = require("class-variance-authority");
var import_jsx_runtime13 = require("react/jsx-runtime");
var textVariants = (0, import_class_variance_authority3.cva)("", {
variants: {
variant: {
display: "text-5xl font-extrabold tracking-tight",
title: "text-3xl font-bold tracking-tight",
subtitle: "text-2xl font-semibold",
normal: "text-base font-normal",
caption: "text-sm font-medium",
muted: "text-sm font-normal text-muted-foreground"
},
align: {
left: "text-left",
center: "text-center",
right: "text-right",
justify: "text-justify"
}
},
defaultVariants: {
variant: "normal",
align: "left"
}
});
var tagMap = {
display: "h1",
title: "h2",
subtitle: "h3",
normal: "p",
caption: "small",
muted: "p"
};
function Text({
variant = "normal",
align,
className,
children
}) {
const Tag = tagMap[variant || "normal"] || "p";
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tag, { className: cn(textVariants({ variant, align }), className), children });
}
// src/components/dataDisplay/DataPairList/DataPairList.tsx
var import_jsx_runtime14 = require("react/jsx-runtime");
var DataPairList = ({
title,
data,
labels,
className,
infoDirection = "horizontal",
direction = "vertical",
withBorder = false,
header = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, {})
}) => {
if ((0, import_lodash.isEmpty)(data)) return null;
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
"div",
{
className: cn(
"flex flex-col gap-2 rounded-md p-4",
withBorder && "border border-muted",
className
),
children: [
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex gap-3", children: [
title && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { variant: "title", children: title }),
header
] }),
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
"div",
{
className: cn(
"grid grid-cols-1 mt-5",
direction === "vertical" ? "gap-3" : "sm:grid-cols-2 md:grid-cols-4 gap-10"
),
children: Object.entries(data || {}).map(([key, value], index) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
"div",
{
className: cn(
"flex gap-3",
infoDirection === "horizontal" ? "flex-row" : "flex-col"
),
children: [
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { className: "uppercase text-muted-foreground font-bold", children: [
(labels == null ? void 0 : labels[key]) || key,
":"
] }),
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { children: value })
]
},
index
))
}
)
]
}
);
};
// src/components/dataInput/checkbox/Checkbox.tsx
var import_react_hook_form3 = require("react-hook-form");
// src/components/ui/checkbox.tsx
var React8 = __toESM(require("react"));
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
var import_lucide_react3 = require("lucide-react");
var import_jsx_runtime15 = require("react/jsx-runtime");
var Checkbox = React8.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
CheckboxPrimitive.Root,
__spreadProps(__spreadValues({
ref,
className: cn(
"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
className
)
}, props), {
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
CheckboxPrimitive.Indicator,
{
className: cn("flex items-center justify-center text-current"),
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react3.Check, { className: "h-4 w-4" })
}
)
})
);
});
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
// src/components/ui/label.tsx
var React9 = __toESM(require("react"));
var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
var import_class_variance_authority4 = require("class-variance-authority");
var import_jsx_runtime16 = require("react/jsx-runtime");
var labelVariants = (0, import_class_variance_authority4.cva)(
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
);
var Label3 = React9.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
LabelPrimitive.Root,
__spreadValues({
ref,
className: cn(labelVariants(), className)
}, props)
);
});
Label3.displayName = LabelPrimitive.Root.displayName;
// src/components/dataInput/form/index.ts
var import_react_hook_form2 = require("react-hook-form");
// src/components/ui/form.tsx
var React10 = __toESM(require("react"));
var import_react_slot2 = require("@radix-ui/react-slot");
var import_react_hook_form = require("react-hook-form");
var import_jsx_runtime17 = require("react/jsx-runtime");
var Form = import_react_hook_form.FormProvider;
var FormFieldContext = React10.createContext(
{}
);
var FormField = (_a) => {
var props = __objRest(_a, []);
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_hook_form.Controller, __spreadValues({}, props)) });
};
var useFormField = () => {
const fieldContext = React10.useContext(FormFieldContext);
const itemContext = React10.useContext(FormItemContext);
const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
const fieldState = getFieldState(fieldContext.name, formState);
if (!fieldContext) {
throw new Error("useFormField should be used within <FormField>");
}
const { id } = itemContext;
return __spreadValues({
id,
name: fieldContext.name,
formItemId: `${id}-form-item`,
formDescriptionId: `${id}-form-item-description`,
formMessageId: `${id}-form-item-message`
}, fieldState);
};
var FormItemContext = React10.createContext(
{}
);
var FormItem = React10.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
const id = React10.useId();
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
});
FormItem.displayName = "FormItem";
var FormLabel = React10.forwardRef((_a, ref) => {
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
const { error, formItemId } = useFormField();
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
Label3,
__spreadValues({
ref,
className: cn(error && "text-destructive", className),
htmlFor: formItemId
}, props)
);
});
FormLabel.displayName = "FormLabel";
var FormControl = React10.forwardRef((_a, ref) => {
var props = __objRest(_a, []);
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
import_react_slot2.Slot,
__spreadValues({
ref,
id: formItemId,
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
"aria-invalid": !!error
}, props)
);
});
FormControl.displayName = "FormCon