UNPKG

@explita/daily-toolset-form

Version:

A lightweight form toolkit for React built with developer ergonomics in mind. Includes a flexible Form component, useForm, useField, and useFormContext hooks for managing form state and validation with ease. Designed to simplify complex forms while remain

66 lines (65 loc) 2.6 kB
"use client"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.FormContext = void 0; exports.Form = Form; const react_1 = __importStar(require("react")); const useForm_1 = require("../hooks/useForm"); const css_1 = require("../lib/css"); exports.FormContext = (0, react_1.createContext)(null); function Form({ children, use, onValid, as = "form", className, ...rest }) { const formInstance = use !== null && use !== void 0 ? use : (0, useForm_1.useForm)(); const Element = as; const handle = //@ts-ignore as === "form" && !formInstance.formAction && onValid ? formInstance.handleSubmit(onValid) : undefined; const props = as === "form" ? { //@ts-ignore action: formInstance.formAction, onSubmit: handle, } : undefined; return ( // @ts-ignore react_1.default.createElement(exports.FormContext.Provider, { value: formInstance }, //@ts-ignore react_1.default.createElement(Element, { ...props, ...rest, className: `explita-form ${className !== null && className !== void 0 ? className : ""}` }, react_1.default.createElement("style", null, css_1.css), children))); }