@llamaindex/ui
Version:
A comprehensive UI component library built with React, TypeScript, and Tailwind CSS for LlamaIndex applications
141 lines (135 loc) • 4.76 kB
JavaScript
var chunkPQJI2ML2_js = require('./chunk-PQJI2ML2.js');
var chunkHK7TFVDA_js = require('./chunk-HK7TFVDA.js');
var chunkORMEWXMH_js = require('./chunk-ORMEWXMH.js');
var React = require('react');
var reactSlot = require('@radix-ui/react-slot');
var reactHookForm = require('react-hook-form');
var jsxRuntime = require('react/jsx-runtime');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespace(React);
var Form = reactHookForm.FormProvider;
var FormFieldContext = React__namespace.createContext(
{}
);
var FormField = (_a) => {
var props = chunkORMEWXMH_js.__objRest(_a, []);
return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, chunkORMEWXMH_js.__spreadValues({}, props)) });
};
var useFormField = () => {
const fieldContext = React__namespace.useContext(FormFieldContext);
const itemContext = React__namespace.useContext(FormItemContext);
const { getFieldState } = reactHookForm.useFormContext();
const formState = reactHookForm.useFormState({ name: fieldContext.name });
const fieldState = getFieldState(fieldContext.name, formState);
if (!fieldContext) {
throw new Error("useFormField should be used within <FormField>");
}
const { id } = itemContext;
return chunkORMEWXMH_js.__spreadValues({
id,
name: fieldContext.name,
formItemId: `${id}-form-item`,
formDescriptionId: `${id}-form-item-description`,
formMessageId: `${id}-form-item-message`
}, fieldState);
};
var FormItemContext = React__namespace.createContext(
{}
);
function FormItem(_a) {
var _b = _a, { className } = _b, props = chunkORMEWXMH_js.__objRest(_b, ["className"]);
const id = React__namespace.useId();
return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
"div",
chunkORMEWXMH_js.__spreadValues({
"data-slot": "form-item",
className: chunkHK7TFVDA_js.cn("grid gap-2", className)
}, props)
) });
}
function FormLabel(_a) {
var _b = _a, {
className
} = _b, props = chunkORMEWXMH_js.__objRest(_b, [
"className"
]);
const { error, formItemId } = useFormField();
return /* @__PURE__ */ jsxRuntime.jsx(
chunkPQJI2ML2_js.Label,
chunkORMEWXMH_js.__spreadValues({
"data-slot": "form-label",
"data-error": !!error,
className: chunkHK7TFVDA_js.cn("data-[error=true]:text-destructive", className),
htmlFor: formItemId
}, props)
);
}
function FormControl(_a) {
var props = chunkORMEWXMH_js.__objRest(_a, []);
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
return /* @__PURE__ */ jsxRuntime.jsx(
reactSlot.Slot,
chunkORMEWXMH_js.__spreadValues({
"data-slot": "form-control",
id: formItemId,
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
"aria-invalid": !!error
}, props)
);
}
function FormDescription(_a) {
var _b = _a, { className } = _b, props = chunkORMEWXMH_js.__objRest(_b, ["className"]);
const { formDescriptionId } = useFormField();
return /* @__PURE__ */ jsxRuntime.jsx(
"p",
chunkORMEWXMH_js.__spreadValues({
"data-slot": "form-description",
id: formDescriptionId,
className: chunkHK7TFVDA_js.cn("text-muted-foreground text-sm", className)
}, props)
);
}
function FormMessage(_a) {
var _b = _a, { className } = _b, props = chunkORMEWXMH_js.__objRest(_b, ["className"]);
var _a2;
const { error, formMessageId } = useFormField();
const body = error ? String((_a2 = error == null ? void 0 : error.message) != null ? _a2 : "") : props.children;
if (!body) {
return null;
}
return /* @__PURE__ */ jsxRuntime.jsx(
"p",
chunkORMEWXMH_js.__spreadProps(chunkORMEWXMH_js.__spreadValues({
"data-slot": "form-message",
id: formMessageId,
className: chunkHK7TFVDA_js.cn("text-destructive text-sm", className)
}, props), {
children: body
})
);
}
exports.Form = Form;
exports.FormControl = FormControl;
exports.FormDescription = FormDescription;
exports.FormField = FormField;
exports.FormItem = FormItem;
exports.FormLabel = FormLabel;
exports.FormMessage = FormMessage;
exports.useFormField = useFormField;
;