UNPKG

@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
'use strict'; 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;