react-luna-form 0.0.2 → 0.0.4
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/dist/client/cjs/index.js +1 -1
- package/dist/client/esm/index.js +1 -1
- package/dist/server/cjs/index.js +1 -1
- package/dist/server/esm/index.js +1 -1
- package/dist/types/client/component/wrapper/column.d.ts +1 -1
- package/dist/types/component/column.d.ts +2 -2
- package/dist/types/type.d.ts +33 -37
- package/dist/types/util/extract.d.ts +1 -0
- package/dist/types/util/is-input.d.ts +2 -3
- package/package.json +1 -1
package/dist/client/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Bt=Object.create;var E=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Wt=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var zt=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0})},J=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ht(t))!$t.call(e,o)&&o!==r&&E(e,o,{get:()=>t[o],enumerable:!(n=Gt(t,o))||n.enumerable});return e};var Zt=(e,t,r)=>(r=e!=null?Bt(Wt(e)):{},J(t||!e||!e.__esModule?E(r,"default",{value:e,enumerable:!0}):r,e)),Kt=e=>J(E({},"__esModule",{value:!0}),e);var yr={};zt(yr,{Form:()=>Yt});module.exports=Kt(yr);var j=require("react/jsx-runtime");function Q(e){return(0,j.jsx)("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}var ee=require("react/jsx-runtime");function A(e){return(0,ee.jsx)("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}var p=require("react/jsx-runtime");function te(e){return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),(0,p.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}var y=require("react/jsx-runtime");function re(e){return!e.title&&!e.description?(0,y.jsx)(A,{children:e.children}):(0,y.jsxs)("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[(0,y.jsx)(te,{title:e.title,description:e.description}),(0,y.jsx)(A,{children:e.children})]})}var ie=require("react");var U=require("react/jsx-runtime");function ne(){return(0,U.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,U.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function F(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>oe(t)-oe(r)):[]}function oe(e){return e.order??Number.MAX_VALUE}function I(e){return Object.entries(e??{})}var u=require("react/jsx-runtime");function le(e){let t=F(e.sections);return(0,u.jsx)("div",{className:"h-full w-full",children:(0,u.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,u.jsxs)(A,{children:[t.map((r,n)=>(0,u.jsxs)(ie.Fragment,{children:[(0,u.jsx)(re,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,u.jsx)(ne,{})]},n)),e.control&&(0,u.jsx)(Q,{children:e.control})]})})})}var ue=require("react/jsx-runtime");function ae(e){return(0,ue.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var Y=require("react/jsx-runtime");function N(e){return!e.errors||e.errors.length===0?null:(0,Y.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,Y.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var P=require("jotai"),se=require("jotai-family"),s=(0,P.atom)({}),ce=(0,se.atomFamily)(e=>(0,P.atom)(t=>t(s)[e]??null,(t,r,n)=>{let o=t(s);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(s,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(s,l)}})),me=(0,P.atom)(null,(e,t,r)=>{let n=e(s);Jt(n,r)&&t(s,r)});function Jt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let d=new Set(i);if(!l.every(f=>d.has(f)))return!0}}return!1}var ot=require("jotai");var De=Zt(require("swr"),1);function b(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function M(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var q="input",de="input/email",fe="input/number",pe="textarea",X="column",ge="fields",ye="radio",be="value",xe="select",he="select/month",Ae="select/year",B="email",Te="number",Ce="password";var v="text",Se="aria-errormessage",Re="aria-invalid",Ee="data-invalid",Fe="aria",Ie="data";var Ne="minLength",Pe="maxLength";function Me(e,t=be){if(e!=null){if(M(e))return e;if(b(e)){let r=Qt(e,t);if(M(r))return r}}}function Qt(e,t){let r=we(e,t);if(M(r))return r}function ve(e,t){if(Array.isArray(e))return e;let r=we(e,t);return Array.isArray(r)?r:null}function we(e,t){if(!t||!b(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(b(n)&&o in n)n=n[o];else return null;return n}function Le(e=null,t,r=!1){let{data:n}=(0,De.default)(jt(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[ve(n,e.namespace)]}return[null]}function jt(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function w(e){return e.type===he}function D(e){return e.type===Ae}function _e(e){return c(e)||G(e)}var Oe=H(q),G=H(ye),c=H(xe);function ke(e){return e.type===X&&ge in e}function Ve(e){return e.type!==X}function Ue(e){return e.type===pe}function Ye(e){return e.type===v||e.type===B||e.type===Ce||e.type==="tel"}function L(e){return e.type===fe||e.type===Te}function qe(e){return e.type===de||e.type===B}function Xe(e=v){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==q)return r.trim().toLowerCase()}}return v}function H(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}var a=require("zod"),tr=[[L,or],[qe,rr],[D,ir],[w,lr]];function He(e){return a.z.object(e)}function We(e){let t={},r=a.z.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function $e(e){for(let[t,r]of tr)if(t(e))return r(e);return nr(e)}function rr(e){let t=a.z.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.z.literal("")).nullable()}function nr(e){let t=a.z.coerce.string().trim();return t=ze(t,e),e.required?(t=Ze(t,e),a.z.preprocess(r=>r===null?"":r,t)):t.nullable()}function or(e){let t=a.z.coerce.number().int();return t=ze(t,e),e.required?(t=Ze(t,e),a.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function ir(e){if(e.required){let t=a.z.coerce.number({message:e.validation?.required}).int();return a.z.preprocess(ar,t)}return a.z.coerce.number().int().nullable()}function lr(e){let t=a.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function ar(e){return e==null||e===""?void 0:e}function ze(e,t){return e=ur(e,t),e=sr(e,t),e}function Ze(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var ur=(e,t)=>Ke(e,t,"min"),sr=(e,t)=>Ke(e,t,"max");function Ke(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}var T=require("react");function Je(e,t,r){let n=$e(e),o=(0,T.useEffectEvent)(l=>{l&&t(l,n)}),i=(0,T.useEffectEvent)(l=>{l&&r(l)});return(0,T.useEffect)(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function Qe(e,t={}){if(c(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&b(r))return[r]}}function je(e,t){if(t){let r=t[e.name];if(G(e)||c(e)&&!e.disabled)return r}}function et(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function tt(e,t,r){let n=Qe(e,t);return je(e,r)??n}function rt(e,t){return Me(e.name?t?.[e.name]:void 0)}function nt(e,t,r){return _e(e)&&Array.isArray(r)?{...t,options:r}:t}var m=require("react/jsx-runtime");function it(e){let t=rt(e.field,e.value),r=tt(e.field,e.value,e.source),[n,o]=(0,ot.useAtom)(ce(e.field.name)),[i]=Je(e.field,e.onMount,e.onUnmount),[l]=Le(r,e.config,e.field.disabled),d=nt(e.field,e.commonProps,l);function g(h){let R=h.target.value;Z(R)}function f(h){let R=h.target.value;Z(R)}function Z(h){let qt=i.safeParse(h).error?.issues.map(Xt=>Xt.message)??[];o(qt)}let K=e.config.inputs[e.field.type];return K?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(K,{...e.ariaAttributes,...d,...e.dataAttributes,defaultValue:t,onBlur:f,onChange:g}),e.field.description&&(0,m.jsx)(ae,{children:e.field.description}),!e.withinColumn&&(0,m.jsx)(N,{name:e.field.name,errors:n})]}):null}var lt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},at={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function ut(e,t=2){return lt[e&&e in lt?e:t]}function st(e){if(e&&e in at)return at[e]}var ct=require("tailwind-merge"),C=require("react/jsx-runtime");function mt(e){let t=ut(e.column?.advanced?.cols),r=e.column?.fields??[],n=I(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return(0,C.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,C.jsx)("div",{className:(0,ct.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),(0,C.jsx)(N,{errors:n})]})}var dt=require("jotai"),ft=require("react/jsx-runtime");function _(e){return r=>{let n=(0,dt.useAtomValue)(s);return(0,ft.jsx)(e,{...r,errors:n})}}var pt=_(mt);function gt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function yt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function W(){return new Date().getFullYear()}function $(e,t){if(typeof e=="number")return e;let r=t??W(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var O=W();function bt(e){if(c(e))return cr(e)}function cr(e){if(w(e))return gt();if(D(e)){let t=e.advanced?.length?.min??O,r=e.advanced?.length?.max??O+5;return yt($(t,O),$(r,O))}}function xt(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Oe(e)?{...r,...mr(e)}:c(e)?{...r,...dr(e)}:Ue(e)?{...r,...fr(e)}:r}function mr(e){let t=Xe(e.type),r={...e,type:t};return{...ht(e),...pr(r),...Ye(r)?At(r):{},type:t}}function dr(e){let t=bt(e);return t?{options:t}:{}}function fr(e){return{...ht(e),...At(e)}}function ht(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function pr(e){return L(e)?gr(e):{}}function At(e){return Tt(e,{min:Ne,max:Pe})}function gr(e){return Tt(e,{min:"min",max:"max"})}function Tt(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function Ct(e,t){let r={};for(let[n,o]of I(t))r[`${e}-${n}`]=o;return r}function St(e){return Ct(Fe,e)}function Rt(e){return Ct(Ie,e)}function Et(e,t){let r=St(e.advanced?.aria);return t&&t.length>0&&(r[Re]="true",r[Se]=`${e.name}-error`),r}function Ft(e){return Rt(e.advanced?.data)}function It(e){if(!e.field.type)return null;let t=xt(e.field,e.disabled),r=Ft(e.field),n=Et(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}var k=require("react/jsx-runtime");function Nt(e){return(0,k.jsxs)("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&(0,k.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var Pt=require("tailwind-merge"),S=require("react/jsx-runtime");function Mt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return(0,S.jsxs)("div",{...t&&{[Ee]:"true"},"data-slot":"field",className:(0,Pt.twMerge)("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",st(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&(0,S.jsx)(Nt,{name:e.field.name,required:e.field.required,children:e.field.label}),(0,S.jsx)(It,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var vt=_(Mt);var wt=require("react");var x=require("react/jsx-runtime");function z(e){let t=F(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>(0,x.jsxs)(wt.Fragment,{children:[ke(o)&&(0,x.jsx)(r,{column:o,children:(0,x.jsx)(z,{...e,fields:o.fields,withinColumn:!0})}),Ve(o)&&(0,x.jsx)(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}var Lt=require("react/jsx-runtime"),Dt=e=>(0,Lt.jsx)(z,{...e,components:{column:pt,field:vt}});var _t=require("react"),Ot=require("jotai");function kt(e,t){let r=(0,Ot.useSetAtom)(me);async function n(o){let i=e(),l=He(i),d=Object.fromEntries(o),g=l.safeParse(d);if(!g.success){let f=We(g.error);(0,_t.startTransition)(()=>{r(f)});return}if(t){let f=et(g.data);await t(f)}}return[n]}var Vt=require("react");function Ut(){let e=(0,Vt.useRef)({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}var V=require("react/jsx-runtime");function Yt(e){let[t,r,n]=Ut(),[o]=kt(t,e.action);return(0,V.jsx)(le,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>(0,V.jsx)(Dt,{disabled:i,fields:l,children:d=>(0,V.jsx)(it,{...d,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}
|
|
1
|
+
"use strict";var Xt=Object.create;var I=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Ht=Object.getPrototypeOf,Wt=Object.prototype.hasOwnProperty;var $t=(e,t)=>{for(var r in t)I(e,r,{get:t[r],enumerable:!0})},J=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Gt(t))!Wt.call(e,o)&&o!==r&&I(e,o,{get:()=>t[o],enumerable:!(n=Bt(t,o))||n.enumerable});return e};var zt=(e,t,r)=>(r=e!=null?Xt(Ht(e)):{},J(t||!e||!e.__esModule?I(r,"default",{value:e,enumerable:!0}):r,e)),Zt=e=>J(I({},"__esModule",{value:!0}),e);var gr={};$t(gr,{Form:()=>Ut});module.exports=Zt(gr);var j=require("react/jsx-runtime");function Q(e){return(0,j.jsx)("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}var ee=require("react/jsx-runtime");function T(e){return(0,ee.jsx)("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}var p=require("react/jsx-runtime");function te(e){return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),(0,p.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}var y=require("react/jsx-runtime");function re(e){return!e.title&&!e.description?(0,y.jsx)(T,{children:e.children}):(0,y.jsxs)("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[(0,y.jsx)(te,{title:e.title,description:e.description}),(0,y.jsx)(T,{children:e.children})]})}var ie=require("react");var Y=require("react/jsx-runtime");function ne(){return(0,Y.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,Y.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function F(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>oe(t)-oe(r)):[]}function oe(e){return e.order??Number.MAX_VALUE}function N(e){return Object.entries(e??{})}var u=require("react/jsx-runtime");function le(e){let t=F(e.sections);return(0,u.jsx)("div",{className:"h-full w-full",children:(0,u.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,u.jsxs)(T,{children:[t.map((r,n)=>(0,u.jsxs)(ie.Fragment,{children:[(0,u.jsx)(re,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,u.jsx)(ne,{})]},n)),e.control&&(0,u.jsx)(Q,{children:e.control})]})})})}var ue=require("react/jsx-runtime");function ae(e){return(0,ue.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var q=require("react/jsx-runtime");function P(e){return!e.errors||e.errors.length===0?null:(0,q.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,q.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var M=require("jotai"),se=require("jotai-family"),s=(0,M.atom)({}),ce=(0,se.atomFamily)(e=>(0,M.atom)(t=>t(s)[e]??null,(t,r,n)=>{let o=t(s);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(s,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(s,l)}})),me=(0,M.atom)(null,(e,t,r)=>{let n=e(s);Kt(n,r)&&t(s,r)});function Kt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let d=new Set(i);if(!l.every(f=>d.has(f)))return!0}}return!1}var nt=require("jotai");var De=zt(require("swr"),1);function b(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function v(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var w="input",de="input/email",fe="input/number",pe="textarea",X="column";var ge="radio",ye="value",be="select",xe="select/month",he="select/year",B="email",Te="number",Ae="password";var A="text",Ce="aria-errormessage",Se="aria-invalid",Re="data-invalid",Ee="aria",Ie="data";var Fe="minLength",Ne="maxLength";function Pe(e,t=ye){if(e!=null){if(v(e))return e;if(b(e)){let r=Jt(e,t);if(v(r))return r}}}function Jt(e,t){let r=ve(e,t);if(v(r))return r}function Me(e,t){if(Array.isArray(e))return e;let r=ve(e,t);return Array.isArray(r)?r:null}function ve(e,t){if(!t||!b(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(b(n)&&o in n)n=n[o];else return null;return n}function we(e=A){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==w)return r.trim().toLowerCase()}}return A}function _e(e=null,t,r=!1){let{data:n}=(0,De.default)(Qt(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[Me(n,e.namespace)]}return[null]}function Qt(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function D(e){return e.type===xe}function _(e){return e.type===he}function Le(e){return c(e)||G(e)}var Oe=H(w),G=H(ge),c=H(be);function ke(e){return e.type===X}function Ve(e){return e.type!==X}function Ue(e){return e.type===pe}function Ye(e){return e.type===A||e.type===B||e.type===Ae||e.type==="tel"}function L(e){return e.type===fe||e.type===Te}function qe(e){return e.type===de||e.type===B}function H(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}var a=require("zod"),er=[[L,nr],[qe,tr],[_,or],[D,ir]];function Ge(e){return a.z.object(e)}function He(e){let t={},r=a.z.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function We(e){for(let[t,r]of er)if(t(e))return r(e);return rr(e)}function tr(e){let t=a.z.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.z.literal("")).nullable()}function rr(e){let t=a.z.coerce.string().trim();return t=$e(t,e),e.required?(t=ze(t,e),a.z.preprocess(r=>r===null?"":r,t)):t.nullable()}function nr(e){let t=a.z.coerce.number().int();return t=$e(t,e),e.required?(t=ze(t,e),a.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function or(e){if(e.required){let t=a.z.coerce.number({message:e.validation?.required}).int();return a.z.preprocess(lr,t)}return a.z.coerce.number().int().nullable()}function ir(e){let t=a.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function lr(e){return e==null||e===""?void 0:e}function $e(e,t){return e=ar(e,t),e=ur(e,t),e}function ze(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var ar=(e,t)=>Ze(e,t,"min"),ur=(e,t)=>Ze(e,t,"max");function Ze(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}var C=require("react");function Ke(e,t,r){let n=We(e),o=(0,C.useEffectEvent)(l=>{l&&t(l,n)}),i=(0,C.useEffectEvent)(l=>{l&&r(l)});return(0,C.useEffect)(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function Je(e,t={}){if(c(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&b(r))return[r]}}function Qe(e,t){if(t){let r=t[e.name];if(G(e)||c(e)&&!e.disabled)return r}}function je(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function et(e,t,r){let n=Je(e,t);return Qe(e,r)??n}function tt(e,t){return Pe(e.name?t?.[e.name]:void 0)}function rt(e,t,r){return Le(e)&&Array.isArray(r)?{...t,options:r}:t}var m=require("react/jsx-runtime");function ot(e){let t=tt(e.field,e.value),r=et(e.field,e.value,e.source),[n,o]=(0,nt.useAtom)(ce(e.field.name)),[i]=Ke(e.field,e.onMount,e.onUnmount),[l]=_e(r,e.config,e.field.disabled),d=rt(e.field,e.commonProps,l);function g(h){let E=h.target.value;Z(E)}function f(h){let E=h.target.value;Z(E)}function Z(h){let Yt=i.safeParse(h).error?.issues.map(qt=>qt.message)??[];o(Yt)}let K=e.config.inputs[e.field.type];return K?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(K,{...e.ariaAttributes,...d,...e.dataAttributes,defaultValue:t,onBlur:f,onChange:g}),e.field.description&&(0,m.jsx)(ae,{children:e.field.description}),!e.withinColumn&&(0,m.jsx)(P,{name:e.field.name,errors:n})]}):null}var it={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},lt={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function at(e,t=2){return it[e&&e in it?e:t]}function ut(e){if(e&&e in lt)return lt[e]}var st=require("tailwind-merge"),S=require("react/jsx-runtime");function ct(e){let t=at(e.column?.advanced?.cols),r=e.column?.fields??[],n=N(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return(0,S.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,S.jsx)("div",{className:(0,st.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),(0,S.jsx)(P,{errors:n})]})}var mt=require("jotai"),dt=require("react/jsx-runtime");function O(e){return r=>{let n=(0,mt.useAtomValue)(s);return(0,dt.jsx)(e,{...r,errors:n})}}var ft=O(ct);function pt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function gt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function W(){return new Date().getFullYear()}function $(e,t){if(typeof e=="number")return e;let r=t??W(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var k=W();function yt(e){if(c(e))return sr(e)}function sr(e){if(D(e))return pt();if(_(e)){let t=e.advanced?.length?.min??k,r=e.advanced?.length?.max??k+5;return gt($(t,k),$(r,k))}}function bt(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Oe(e)?{...r,...cr(e)}:c(e)?{...r,...mr(e)}:Ue(e)?{...r,...dr(e)}:r}function cr(e){let t=we(e.type),r={...e,type:t};return{...xt(e),...fr(r),...Ye(r)?ht(r):{},type:t}}function mr(e){let t=yt(e);return t?{options:t}:{}}function dr(e){return{...xt(e),...ht(e)}}function xt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function fr(e){return L(e)?pr(e):{}}function ht(e){return Tt(e,{min:Fe,max:Ne})}function pr(e){return Tt(e,{min:"min",max:"max"})}function Tt(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function At(e,t){let r={};for(let[n,o]of N(t))r[`${e}-${n}`]=o;return r}function Ct(e){return At(Ee,e)}function St(e){return At(Ie,e)}function Rt(e,t){let r=Ct(e.advanced?.aria);return t&&t.length>0&&(r[Se]="true",r[Ce]=`${e.name}-error`),r}function Et(e){return St(e.advanced?.data)}function It(e){if(!e.field.type)return null;let t=bt(e.field,e.disabled),r=Et(e.field),n=Rt(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}var V=require("react/jsx-runtime");function Ft(e){return(0,V.jsxs)("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&(0,V.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var Nt=require("tailwind-merge"),R=require("react/jsx-runtime");function Pt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return(0,R.jsxs)("div",{...t&&{[Re]:"true"},"data-slot":"field",className:(0,Nt.twMerge)("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",ut(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&(0,R.jsx)(Ft,{name:e.field.name,required:e.field.required,children:e.field.label}),(0,R.jsx)(It,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var Mt=O(Pt);var vt=require("react");var x=require("react/jsx-runtime");function z(e){let t=F(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>(0,x.jsxs)(vt.Fragment,{children:[ke(o)&&(0,x.jsx)(r,{column:o,children:(0,x.jsx)(z,{...e,fields:o.fields,withinColumn:!0})}),Ve(o)&&(0,x.jsx)(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}var Dt=require("react/jsx-runtime"),wt=e=>(0,Dt.jsx)(z,{...e,components:{column:ft,field:Mt}});var _t=require("react"),Lt=require("jotai");function Ot(e,t){let r=(0,Lt.useSetAtom)(me);async function n(o){let i=e(),l=Ge(i),d=Object.fromEntries(o),g=l.safeParse(d);if(!g.success){let f=He(g.error);(0,_t.startTransition)(()=>{r(f)});return}if(t){let f=je(g.data);await t(f)}}return[n]}var kt=require("react");function Vt(){let e=(0,kt.useRef)({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}var U=require("react/jsx-runtime");function Ut(e){let[t,r,n]=Vt(),[o]=Ot(t,e.action);return(0,U.jsx)(le,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>(0,U.jsx)(wt,{disabled:i,fields:l,children:d=>(0,U.jsx)(ot,{...d,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}
|
package/dist/client/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as Rt}from"react/jsx-runtime";function B(e){return Rt("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}import{jsx as Et}from"react/jsx-runtime";function g(e){return Et("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}import{Fragment as Ft,jsx as G,jsxs as It}from"react/jsx-runtime";function H(e){return It(Ft,{children:[G("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),G("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}import{jsx as N,jsxs as Nt}from"react/jsx-runtime";function W(e){return!e.title&&!e.description?N(g,{children:e.children}):Nt("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[N(H,{title:e.title,description:e.description}),N(g,{children:e.children})]})}import{Fragment as Pt}from"react";import{jsx as $}from"react/jsx-runtime";function z(){return $("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:$("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function x(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>Z(t)-Z(r)):[]}function Z(e){return e.order??Number.MAX_VALUE}function h(e){return Object.entries(e??{})}import{jsx as y,jsxs as K}from"react/jsx-runtime";function J(e){let t=x(e.sections);return y("div",{className:"h-full w-full",children:y("form",{noValidate:e.noValidate,action:e.action,children:K(g,{children:[t.map((r,n)=>K(Pt,{children:[y(W,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&y(z,{})]},n)),e.control&&y(B,{children:e.control})]})})})}import{jsx as Mt}from"react/jsx-runtime";function Q(e){return Mt("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as j}from"react/jsx-runtime";function A(e){return!e.errors||e.errors.length===0?null:j("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>j("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{atom as P}from"jotai";import{atomFamily as vt}from"jotai-family";var u=P({}),ee=vt(e=>P(t=>t(u)[e]??null,(t,r,n)=>{let o=t(u);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(u,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(u,l)}})),te=P(null,(e,t,r)=>{let n=e(u);wt(n,r)&&t(u,r)});function wt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let c=new Set(i);if(!l.every(m=>c.has(m)))return!0}}return!1}import{useAtom as $t}from"jotai";import Lt from"swr";function f(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function T(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var M="input",re="input/email",ne="input/number",oe="textarea",v="column",ie="fields",le="radio",ae="value",ue="select",se="select/month",ce="select/year",w="email",me="number",de="password";var C="text",fe="aria-errormessage",pe="aria-invalid",ge="data-invalid",ye="aria",be="data";var xe="minLength",he="maxLength";function Ae(e,t=ae){if(e!=null){if(T(e))return e;if(f(e)){let r=Dt(e,t);if(T(r))return r}}}function Dt(e,t){let r=Ce(e,t);if(T(r))return r}function Te(e,t){if(Array.isArray(e))return e;let r=Ce(e,t);return Array.isArray(r)?r:null}function Ce(e,t){if(!t||!f(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(f(n)&&o in n)n=n[o];else return null;return n}function Se(e=null,t,r=!1){let{data:n}=Lt(_t(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[Te(n,e.namespace)]}return[null]}function _t(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function S(e){return e.type===se}function R(e){return e.type===ce}function Re(e){return s(e)||D(e)}var Ee=L(M),D=L(le),s=L(ue);function Fe(e){return e.type===v&&ie in e}function Ie(e){return e.type!==v}function Ne(e){return e.type===oe}function Pe(e){return e.type===C||e.type===w||e.type===de||e.type==="tel"}function E(e){return e.type===ne||e.type===me}function Me(e){return e.type===re||e.type===w}function ve(e=C){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==M)return r.trim().toLowerCase()}}return C}function L(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}import{z as a}from"zod";var kt=[[E,Yt],[Me,Vt],[R,qt],[S,Xt]];function Le(e){return a.object(e)}function _e(e){let t={},r=a.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function Oe(e){for(let[t,r]of kt)if(t(e))return r(e);return Ut(e)}function Vt(e){let t=a.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.literal("")).nullable()}function Ut(e){let t=a.coerce.string().trim();return t=ke(t,e),e.required?(t=Ve(t,e),a.preprocess(r=>r===null?"":r,t)):t.nullable()}function Yt(e){let t=a.coerce.number().int();return t=ke(t,e),e.required?(t=Ve(t,e),a.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function qt(e){if(e.required){let t=a.coerce.number({message:e.validation?.required}).int();return a.preprocess(Bt,t)}return a.coerce.number().int().nullable()}function Xt(e){let t=a.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Bt(e){return e==null||e===""?void 0:e}function ke(e,t){return e=Gt(e,t),e=Ht(e,t),e}function Ve(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var Gt=(e,t)=>Ue(e,t,"min"),Ht=(e,t)=>Ue(e,t,"max");function Ue(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}import{useEffect as Wt,useEffectEvent as Ye}from"react";function qe(e,t,r){let n=Oe(e),o=Ye(l=>{l&&t(l,n)}),i=Ye(l=>{l&&r(l)});return Wt(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function Xe(e,t={}){if(s(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&f(r))return[r]}}function Be(e,t){if(t){let r=t[e.name];if(D(e)||s(e)&&!e.disabled)return r}}function Ge(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function He(e,t,r){let n=Xe(e,t);return Be(e,r)??n}function We(e,t){return Ae(e.name?t?.[e.name]:void 0)}function $e(e,t,r){return Re(e)&&Array.isArray(r)?{...t,options:r}:t}import{Fragment as zt,jsx as _,jsxs as Zt}from"react/jsx-runtime";function ze(e){let t=We(e.field,e.value),r=He(e.field,e.value,e.source),[n,o]=$t(ee(e.field.name)),[i]=qe(e.field,e.onMount,e.onUnmount),[l]=Se(r,e.config,e.field.disabled),c=$e(e.field,e.commonProps,l);function d(p){let b=p.target.value;q(b)}function m(p){let b=p.target.value;q(b)}function q(p){let Ct=i.safeParse(p).error?.issues.map(St=>St.message)??[];o(Ct)}let X=e.config.inputs[e.field.type];return X?Zt(zt,{children:[_(X,{...e.ariaAttributes,...c,...e.dataAttributes,defaultValue:t,onBlur:m,onChange:d}),e.field.description&&_(Q,{children:e.field.description}),!e.withinColumn&&_(A,{name:e.field.name,errors:n})]}):null}var Ze={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Ke={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Je(e,t=2){return Ze[e&&e in Ze?e:t]}function Qe(e){if(e&&e in Ke)return Ke[e]}import{twMerge as Kt}from"tailwind-merge";import{jsx as je,jsxs as Jt}from"react/jsx-runtime";function et(e){let t=Je(e.column?.advanced?.cols),r=e.column?.fields??[],n=h(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return Jt("div",{className:"flex w-full flex-col gap-4",children:[je("div",{className:Kt("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),je(A,{errors:n})]})}import{useAtomValue as Qt}from"jotai";import{jsx as jt}from"react/jsx-runtime";function F(e){return r=>{let n=Qt(u);return jt(e,{...r,errors:n})}}var tt=F(et);function rt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function nt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function O(){return new Date().getFullYear()}function k(e,t){if(typeof e=="number")return e;let r=t??O(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var I=O();function ot(e){if(s(e))return er(e)}function er(e){if(S(e))return rt();if(R(e)){let t=e.advanced?.length?.min??I,r=e.advanced?.length?.max??I+5;return nt(k(t,I),k(r,I))}}function it(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ee(e)?{...r,...tr(e)}:s(e)?{...r,...rr(e)}:Ne(e)?{...r,...nr(e)}:r}function tr(e){let t=ve(e.type),r={...e,type:t};return{...lt(e),...or(r),...Pe(r)?at(r):{},type:t}}function rr(e){let t=ot(e);return t?{options:t}:{}}function nr(e){return{...lt(e),...at(e)}}function lt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function or(e){return E(e)?ir(e):{}}function at(e){return ut(e,{min:xe,max:he})}function ir(e){return ut(e,{min:"min",max:"max"})}function ut(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function st(e,t){let r={};for(let[n,o]of h(t))r[`${e}-${n}`]=o;return r}function ct(e){return st(ye,e)}function mt(e){return st(be,e)}function dt(e,t){let r=ct(e.advanced?.aria);return t&&t.length>0&&(r[pe]="true",r[fe]=`${e.name}-error`),r}function ft(e){return mt(e.advanced?.data)}function pt(e){if(!e.field.type)return null;let t=it(e.field,e.disabled),r=ft(e.field),n=dt(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}import{jsx as lr,jsxs as ar}from"react/jsx-runtime";function gt(e){return ar("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&lr("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{twMerge as ur}from"tailwind-merge";import{jsx as yt,jsxs as sr}from"react/jsx-runtime";function bt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return sr("div",{...t&&{[ge]:"true"},"data-slot":"field",className:ur("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",Qe(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&yt(gt,{name:e.field.name,required:e.field.required,children:e.field.label}),yt(pt,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var xt=F(bt);import{Fragment as cr}from"react";import{jsx as V,jsxs as mr}from"react/jsx-runtime";function U(e){let t=x(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>mr(cr,{children:[Fe(o)&&V(r,{column:o,children:V(U,{...e,fields:o.fields,withinColumn:!0})}),Ie(o)&&V(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}import{jsx as dr}from"react/jsx-runtime";var ht=e=>dr(U,{...e,components:{column:tt,field:xt}});import{startTransition as fr}from"react";import{useSetAtom as pr}from"jotai";function At(e,t){let r=pr(te);async function n(o){let i=e(),l=Le(i),c=Object.fromEntries(o),d=l.safeParse(c);if(!d.success){let m=_e(d.error);fr(()=>{r(m)});return}if(t){let m=Ge(d.data);await t(m)}}return[n]}import{useRef as gr}from"react";function Tt(){let e=gr({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}import{jsx as Y}from"react/jsx-runtime";function yr(e){let[t,r,n]=Tt(),[o]=At(t,e.action);return Y(J,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>Y(ht,{disabled:i,fields:l,children:c=>Y(ze,{...c,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}export{yr as Form};
|
|
1
|
+
import{jsx as St}from"react/jsx-runtime";function B(e){return St("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}import{jsx as Rt}from"react/jsx-runtime";function g(e){return Rt("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}import{Fragment as Et,jsx as G,jsxs as It}from"react/jsx-runtime";function H(e){return It(Et,{children:[G("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),G("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}import{jsx as P,jsxs as Ft}from"react/jsx-runtime";function W(e){return!e.title&&!e.description?P(g,{children:e.children}):Ft("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[P(H,{title:e.title,description:e.description}),P(g,{children:e.children})]})}import{Fragment as Nt}from"react";import{jsx as $}from"react/jsx-runtime";function z(){return $("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:$("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function h(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>Z(t)-Z(r)):[]}function Z(e){return e.order??Number.MAX_VALUE}function T(e){return Object.entries(e??{})}import{jsx as y,jsxs as K}from"react/jsx-runtime";function J(e){let t=h(e.sections);return y("div",{className:"h-full w-full",children:y("form",{noValidate:e.noValidate,action:e.action,children:K(g,{children:[t.map((r,n)=>K(Nt,{children:[y(W,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&y(z,{})]},n)),e.control&&y(B,{children:e.control})]})})})}import{jsx as Pt}from"react/jsx-runtime";function Q(e){return Pt("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as j}from"react/jsx-runtime";function A(e){return!e.errors||e.errors.length===0?null:j("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>j("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{atom as M}from"jotai";import{atomFamily as Mt}from"jotai-family";var u=M({}),ee=Mt(e=>M(t=>t(u)[e]??null,(t,r,n)=>{let o=t(u);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(u,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(u,l)}})),te=M(null,(e,t,r)=>{let n=e(u);vt(n,r)&&t(u,r)});function vt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let c=new Set(i);if(!l.every(m=>c.has(m)))return!0}}return!1}import{useAtom as Wt}from"jotai";import Dt from"swr";function f(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function C(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var S="input",re="input/email",ne="input/number",oe="textarea",v="column";var ie="radio",le="value",ae="select",ue="select/month",se="select/year",w="email",ce="number",me="password";var b="text",de="aria-errormessage",fe="aria-invalid",pe="data-invalid",ge="aria",ye="data";var be="minLength",xe="maxLength";function he(e,t=le){if(e!=null){if(C(e))return e;if(f(e)){let r=wt(e,t);if(C(r))return r}}}function wt(e,t){let r=Ae(e,t);if(C(r))return r}function Te(e,t){if(Array.isArray(e))return e;let r=Ae(e,t);return Array.isArray(r)?r:null}function Ae(e,t){if(!t||!f(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(f(n)&&o in n)n=n[o];else return null;return n}function Ce(e=b){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==S)return r.trim().toLowerCase()}}return b}function Se(e=null,t,r=!1){let{data:n}=Dt(_t(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[Te(n,e.namespace)]}return[null]}function _t(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function R(e){return e.type===ue}function E(e){return e.type===se}function Re(e){return s(e)||D(e)}var Ee=_(S),D=_(ie),s=_(ae);function Ie(e){return e.type===v}function Fe(e){return e.type!==v}function Ne(e){return e.type===oe}function Pe(e){return e.type===b||e.type===w||e.type===me||e.type==="tel"}function I(e){return e.type===ne||e.type===ce}function Me(e){return e.type===re||e.type===w}function _(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}import{z as a}from"zod";var Ot=[[I,Ut],[Me,kt],[E,Yt],[R,qt]];function De(e){return a.object(e)}function _e(e){let t={},r=a.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function Le(e){for(let[t,r]of Ot)if(t(e))return r(e);return Vt(e)}function kt(e){let t=a.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.literal("")).nullable()}function Vt(e){let t=a.coerce.string().trim();return t=Oe(t,e),e.required?(t=ke(t,e),a.preprocess(r=>r===null?"":r,t)):t.nullable()}function Ut(e){let t=a.coerce.number().int();return t=Oe(t,e),e.required?(t=ke(t,e),a.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function Yt(e){if(e.required){let t=a.coerce.number({message:e.validation?.required}).int();return a.preprocess(Xt,t)}return a.coerce.number().int().nullable()}function qt(e){let t=a.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Xt(e){return e==null||e===""?void 0:e}function Oe(e,t){return e=Bt(e,t),e=Gt(e,t),e}function ke(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var Bt=(e,t)=>Ve(e,t,"min"),Gt=(e,t)=>Ve(e,t,"max");function Ve(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}import{useEffect as Ht,useEffectEvent as Ue}from"react";function Ye(e,t,r){let n=Le(e),o=Ue(l=>{l&&t(l,n)}),i=Ue(l=>{l&&r(l)});return Ht(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function qe(e,t={}){if(s(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&f(r))return[r]}}function Xe(e,t){if(t){let r=t[e.name];if(D(e)||s(e)&&!e.disabled)return r}}function Be(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function Ge(e,t,r){let n=qe(e,t);return Xe(e,r)??n}function He(e,t){return he(e.name?t?.[e.name]:void 0)}function We(e,t,r){return Re(e)&&Array.isArray(r)?{...t,options:r}:t}import{Fragment as $t,jsx as L,jsxs as zt}from"react/jsx-runtime";function $e(e){let t=He(e.field,e.value),r=Ge(e.field,e.value,e.source),[n,o]=Wt(ee(e.field.name)),[i]=Ye(e.field,e.onMount,e.onUnmount),[l]=Se(r,e.config,e.field.disabled),c=We(e.field,e.commonProps,l);function d(p){let x=p.target.value;q(x)}function m(p){let x=p.target.value;q(x)}function q(p){let At=i.safeParse(p).error?.issues.map(Ct=>Ct.message)??[];o(At)}let X=e.config.inputs[e.field.type];return X?zt($t,{children:[L(X,{...e.ariaAttributes,...c,...e.dataAttributes,defaultValue:t,onBlur:m,onChange:d}),e.field.description&&L(Q,{children:e.field.description}),!e.withinColumn&&L(A,{name:e.field.name,errors:n})]}):null}var ze={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Ze={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Ke(e,t=2){return ze[e&&e in ze?e:t]}function Je(e){if(e&&e in Ze)return Ze[e]}import{twMerge as Zt}from"tailwind-merge";import{jsx as Qe,jsxs as Kt}from"react/jsx-runtime";function je(e){let t=Ke(e.column?.advanced?.cols),r=e.column?.fields??[],n=T(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return Kt("div",{className:"flex w-full flex-col gap-4",children:[Qe("div",{className:Zt("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),Qe(A,{errors:n})]})}import{useAtomValue as Jt}from"jotai";import{jsx as Qt}from"react/jsx-runtime";function F(e){return r=>{let n=Jt(u);return Qt(e,{...r,errors:n})}}var et=F(je);function tt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function rt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function O(){return new Date().getFullYear()}function k(e,t){if(typeof e=="number")return e;let r=t??O(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var N=O();function nt(e){if(s(e))return jt(e)}function jt(e){if(R(e))return tt();if(E(e)){let t=e.advanced?.length?.min??N,r=e.advanced?.length?.max??N+5;return rt(k(t,N),k(r,N))}}function ot(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ee(e)?{...r,...er(e)}:s(e)?{...r,...tr(e)}:Ne(e)?{...r,...rr(e)}:r}function er(e){let t=Ce(e.type),r={...e,type:t};return{...it(e),...nr(r),...Pe(r)?lt(r):{},type:t}}function tr(e){let t=nt(e);return t?{options:t}:{}}function rr(e){return{...it(e),...lt(e)}}function it(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function nr(e){return I(e)?or(e):{}}function lt(e){return at(e,{min:be,max:xe})}function or(e){return at(e,{min:"min",max:"max"})}function at(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function ut(e,t){let r={};for(let[n,o]of T(t))r[`${e}-${n}`]=o;return r}function st(e){return ut(ge,e)}function ct(e){return ut(ye,e)}function mt(e,t){let r=st(e.advanced?.aria);return t&&t.length>0&&(r[fe]="true",r[de]=`${e.name}-error`),r}function dt(e){return ct(e.advanced?.data)}function ft(e){if(!e.field.type)return null;let t=ot(e.field,e.disabled),r=dt(e.field),n=mt(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}import{jsx as ir,jsxs as lr}from"react/jsx-runtime";function pt(e){return lr("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&ir("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{twMerge as ar}from"tailwind-merge";import{jsx as gt,jsxs as ur}from"react/jsx-runtime";function yt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return ur("div",{...t&&{[pe]:"true"},"data-slot":"field",className:ar("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",Je(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&>(pt,{name:e.field.name,required:e.field.required,children:e.field.label}),gt(ft,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var bt=F(yt);import{Fragment as sr}from"react";import{jsx as V,jsxs as cr}from"react/jsx-runtime";function U(e){let t=h(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>cr(sr,{children:[Ie(o)&&V(r,{column:o,children:V(U,{...e,fields:o.fields,withinColumn:!0})}),Fe(o)&&V(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}import{jsx as mr}from"react/jsx-runtime";var xt=e=>mr(U,{...e,components:{column:et,field:bt}});import{startTransition as dr}from"react";import{useSetAtom as fr}from"jotai";function ht(e,t){let r=fr(te);async function n(o){let i=e(),l=De(i),c=Object.fromEntries(o),d=l.safeParse(c);if(!d.success){let m=_e(d.error);dr(()=>{r(m)});return}if(t){let m=Be(d.data);await t(m)}}return[n]}import{useRef as pr}from"react";function Tt(){let e=pr({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}import{jsx as Y}from"react/jsx-runtime";function gr(e){let[t,r,n]=Tt(),[o]=ht(t,e.action);return Y(J,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>Y(xt,{disabled:i,fields:l,children:c=>Y($e,{...c,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}export{gr as Form};
|
package/dist/server/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var S=Object.defineProperty;var
|
|
1
|
+
"use strict";var S=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var nt=Object.prototype.hasOwnProperty;var ot=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0})},it=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of rt(t))!nt.call(e,o)&&o!==r&&S(e,o,{get:()=>t[o],enumerable:!(n=tt(t,o))||n.enumerable});return e};var lt=e=>it(S({},"__esModule",{value:!0}),e);var xt={};ot(xt,{Fallback:()=>et,Form:()=>F});module.exports=lt(xt);var k=require("react/jsx-runtime");function v(e){return(0,k.jsx)("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}var V=require("react/jsx-runtime");function f(e){return(0,V.jsx)("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}var u=require("react/jsx-runtime");function Y(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),(0,u.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}var d=require("react/jsx-runtime");function U(e){return!e.title&&!e.description?(0,d.jsx)(f,{children:e.children}):(0,d.jsxs)("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[(0,d.jsx)(Y,{title:e.title,description:e.description}),(0,d.jsx)(f,{children:e.children})]})}var B=require("react");var N=require("react/jsx-runtime");function X(){return(0,N.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,N.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function b(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>G(t)-G(r)):[]}function G(e){return e.order??Number.MAX_VALUE}function x(e){return Object.entries(e??{})}var i=require("react/jsx-runtime");function H(e){let t=b(e.sections);return(0,i.jsx)("div",{className:"h-full w-full",children:(0,i.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,i.jsxs)(f,{children:[t.map((r,n)=>(0,i.jsxs)(B.Fragment,{children:[(0,i.jsx)(U,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,i.jsx)(X,{})]},n)),e.control&&(0,i.jsx)(v,{children:e.control})]})})})}var q=require("react/jsx-runtime");function $(e){return(0,q.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}function m(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function A(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var T="input";var W="input/number",z="textarea",E="column";var J="radio",K="value",Q="select",Z="select/month",j="select/year",ee="email",te="number",re="password";var p="text",ne="aria-errormessage",oe="aria-invalid",ie="data-invalid",le="aria",ae="data";var ue="minLength",se="maxLength";function de(e){return e.type===Z}function me(e){return e.type===j}function ce(e){return l(e)||I(e)}var fe=P(T),I=P(J),l=P(Q);function pe(e){return e.type===E}function ge(e){return e.type!==E}function ye(e){return e.type===z}function be(e){return e.type===p||e.type===ee||e.type===re||e.type==="tel"}function xe(e){return e.type===W||e.type===te}function P(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}function Ae(e,t={}){if(l(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&m(r))return[r]}}function Te(e,t){if(t){let r=t[e.name];if(I(e)||l(e)&&!e.disabled)return r}}function Re(e,t=K){if(e!=null){if(A(e))return e;if(m(e)){let r=ut(e,t);if(A(r))return r}}}function ut(e,t){let r=st(e,t);if(A(r))return r}function st(e,t){if(!t||!m(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(m(n)&&o in n)n=n[o];else return null;return n}function Ce(e=p){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==T)return r.trim().toLowerCase()}}return p}function he(e,t,r){let n=Ae(e,t);return Te(e,r)??n}function Fe(e,t){return Re(e.name?t?.[e.name]:void 0)}function Se(e,t,r){return ce(e)&&Array.isArray(r)?{...t,options:r}:t}var s=require("react/jsx-runtime");function Ne(e){let t=Fe(e.field,e.value),r=he(e.field,e.value,e.source),n=Se(e.field,e.commonProps,r),o=e.config.inputs[e.field.type];return o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o,{...e.ariaAttributes,...n,...e.dataAttributes,defaultValue:t}),e.field.description&&(0,s.jsx)($,{children:e.field.description})]}):null}var Ee=require("react");var c=require("react/jsx-runtime");function _(e){let t=b(e.fields),{column:r,field:n}=e.components;return t.map((o,a)=>(0,c.jsxs)(Ee.Fragment,{children:[pe(o)&&(0,c.jsx)(r,{column:o,children:(0,c.jsx)(_,{...e,fields:o.fields,withinColumn:!0})}),ge(o)&&(0,c.jsx)(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},a))}var L=require("react/jsx-runtime");function Ie(e){return!e.errors||e.errors.length===0?null:(0,L.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,L.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Pe={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},_e={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Le(e,t=2){return Pe[e&&e in Pe?e:t]}function we(e){if(e&&e in _e)return _e[e]}var Me=require("tailwind-merge"),g=require("react/jsx-runtime");function De(e){let t=Le(e.column?.advanced?.cols),r=e.column?.fields??[],n=x(e.errors).filter(([o])=>r.find(a=>a.name===o)).flatMap(([,o])=>o??[]);return(0,g.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,g.jsx)("div",{className:(0,Me.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),(0,g.jsx)(Ie,{errors:n})]})}function Oe(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function ve(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function w(){return new Date().getFullYear()}function M(e,t){if(typeof e=="number")return e;let r=t??w(),n=e.trim().toLowerCase();if(n.startsWith("current")){let a=n.split("+");if(a.length===2){let O=parseInt(a[1],10);if(!isNaN(O))return r+O}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var R=w();function ke(e){if(l(e))return dt(e)}function dt(e){if(de(e))return Oe();if(me(e)){let t=e.advanced?.length?.min??R,r=e.advanced?.length?.max??R+5;return ve(M(t,R),M(r,R))}}function Ve(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return fe(e)?{...r,...ft(e)}:l(e)?{...r,...pt(e)}:ye(e)?{...r,...gt(e)}:r}function ft(e){let t=Ce(e.type),r={...e,type:t};return{...Ye(e),...yt(r),...be(r)?Ue(r):{},type:t}}function pt(e){let t=ke(e);return t?{options:t}:{}}function gt(e){return{...Ye(e),...Ue(e)}}function Ye(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function yt(e){return xe(e)?bt(e):{}}function Ue(e){return Xe(e,{min:ue,max:se})}function bt(e){return Xe(e,{min:"min",max:"max"})}function Xe(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function Ge(e,t){let r={};for(let[n,o]of x(t))r[`${e}-${n}`]=o;return r}function Be(e){return Ge(le,e)}function He(e){return Ge(ae,e)}function $e(e,t){let r=Be(e.advanced?.aria);return t&&t.length>0&&(r[oe]="true",r[ne]=`${e.name}-error`),r}function qe(e){return He(e.advanced?.data)}function We(e){if(!e.field.type)return null;let t=Ve(e.field,e.disabled),r=qe(e.field),n=$e(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}var C=require("react/jsx-runtime");function ze(e){return(0,C.jsxs)("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&(0,C.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var Je=require("tailwind-merge"),y=require("react/jsx-runtime");function Ke(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return(0,y.jsxs)("div",{...t&&{[ie]:"true"},"data-slot":"field",className:(0,Je.twMerge)("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",we(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&(0,y.jsx)(ze,{name:e.field.name,required:e.field.required,children:e.field.label}),(0,y.jsx)(We,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var Ze=require("react/jsx-runtime"),Qe=e=>(0,Ze.jsx)(_,{...e,components:{column:De,field:Ke}});var h=require("react/jsx-runtime");function F(e){return(0,h.jsx)(H,{control:e.children,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>(0,h.jsx)(Qe,{disabled:t,fields:r,children:n=>(0,h.jsx)(Ne,{...n,config:e.config,source:e.source,value:e.value})})})}var je=require("react");var D=require("react/jsx-runtime");function et(e){return(0,D.jsx)(je.Suspense,{fallback:(0,D.jsx)(F,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}
|
package/dist/server/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as He}from"react/jsx-runtime";function E(e){return He("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}import{jsx as $e}from"react/jsx-runtime";function u(e){return $e("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}import{Fragment as qe,jsx as I,jsxs as We}from"react/jsx-runtime";function P(e){return We(qe,{children:[I("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),I("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}import{jsx as y,jsxs as ze}from"react/jsx-runtime";function _(e){return!e.title&&!e.description?y(u,{children:e.children}):ze("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[y(P,{title:e.title,description:e.description}),y(u,{children:e.children})]})}import{Fragment as Je}from"react";import{jsx as L}from"react/jsx-runtime";function w(){return L("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:L("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function m(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>M(t)-M(r)):[]}function M(e){return e.order??Number.MAX_VALUE}function c(e){return Object.entries(e??{})}import{jsx as s,jsxs as D}from"react/jsx-runtime";function O(e){let t=m(e.sections);return s("div",{className:"h-full w-full",children:s("form",{noValidate:e.noValidate,action:e.action,children:D(u,{children:[t.map((r,n)=>D(Je,{children:[s(_,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&s(w,{})]},n)),e.control&&s(E,{children:e.control})]})})})}import{jsx as Ke}from"react/jsx-runtime";function v(e){return Ke("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}function a(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function f(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var p="input";var k="input/number",V="textarea",b="column";var Y="radio",U="value",X="select",G="select/month",B="select/year",H="email",$="number",q="password";var d="text",W="aria-errormessage",z="aria-invalid",J="data-invalid",K="aria",Q="data";var Z="minLength",j="maxLength";function ee(e){return e.type===G}function te(e){return e.type===B}function re(e){return i(e)||x(e)}var ne=A(p),x=A(Y),i=A(X);function oe(e){return e.type===b}function ie(e){return e.type!==b}function le(e){return e.type===V}function ae(e){return e.type===d||e.type===H||e.type===q||e.type==="tel"}function ue(e){return e.type===k||e.type===$}function A(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}function se(e,t={}){if(i(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&a(r))return[r]}}function de(e,t){if(t){let r=t[e.name];if(x(e)||i(e)&&!e.disabled)return r}}function me(e,t=U){if(e!=null){if(f(e))return e;if(a(e)){let r=Ze(e,t);if(f(r))return r}}}function Ze(e,t){let r=je(e,t);if(f(r))return r}function je(e,t){if(!t||!a(e))return null;let r=t.split(".").filter(o=>o!=="");if(r.length===0)return null;let n=e;for(let o of r)if(a(n)&&o in n)n=n[o];else return null;return n}function ce(e=d){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==p)return r.trim().toLowerCase()}}return d}function fe(e,t,r){let n=se(e,t);return de(e,r)??n}function pe(e,t){return me(e.name?t?.[e.name]:void 0)}function ge(e,t,r){return re(e)&&Array.isArray(r)?{...t,options:r}:t}import{Fragment as et,jsx as ye,jsxs as tt}from"react/jsx-runtime";function be(e){let t=pe(e.field,e.value),r=fe(e.field,e.value,e.source),n=ge(e.field,e.commonProps,r),o=e.config.inputs[e.field.type];return o?tt(et,{children:[ye(o,{...e.ariaAttributes,...n,...e.dataAttributes,defaultValue:t}),e.field.description&&ye(v,{children:e.field.description})]}):null}import{Fragment as rt}from"react";import{jsx as T,jsxs as nt}from"react/jsx-runtime";function R(e){let t=m(e.fields),{column:r,field:n}=e.components;return t.map((o,l)=>nt(rt,{children:[oe(o)&&T(r,{column:o,children:T(R,{...e,fields:o.fields,withinColumn:!0})}),ie(o)&&T(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},l))}import{jsx as xe}from"react/jsx-runtime";function Ae(e){return!e.errors||e.errors.length===0?null:xe("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>xe("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Te={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Re={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Ce(e,t=2){return Te[e&&e in Te?e:t]}function he(e){if(e&&e in Re)return Re[e]}import{twMerge as ot}from"tailwind-merge";import{jsx as Fe,jsxs as it}from"react/jsx-runtime";function Se(e){let t=Ce(e.column?.advanced?.cols),r=e.column?.fields??[],n=c(e.errors).filter(([o])=>r.find(l=>l.name===o)).flatMap(([,o])=>o??[]);return it("div",{className:"flex w-full flex-col gap-4",children:[Fe("div",{className:ot("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),Fe(Ae,{errors:n})]})}function Ne(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Ee(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function C(){return new Date().getFullYear()}function h(e,t){if(typeof e=="number")return e;let r=t??C(),n=e.trim().toLowerCase();if(n.startsWith("current")){let l=n.split("+");if(l.length===2){let N=parseInt(l[1],10);if(!isNaN(N))return r+N}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var g=C();function Ie(e){if(i(e))return lt(e)}function lt(e){if(ee(e))return Ne();if(te(e)){let t=e.advanced?.length?.min??g,r=e.advanced?.length?.max??g+5;return Ee(h(t,g),h(r,g))}}function Pe(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return ne(e)?{...r,...st(e)}:i(e)?{...r,...dt(e)}:le(e)?{...r,...mt(e)}:r}function st(e){let t=ce(e.type),r={...e,type:t};return{..._e(e),...ct(r),...ae(r)?Le(r):{},type:t}}function dt(e){let t=Ie(e);return t?{options:t}:{}}function mt(e){return{..._e(e),...Le(e)}}function _e(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ct(e){return ue(e)?ft(e):{}}function Le(e){return we(e,{min:Z,max:j})}function ft(e){return we(e,{min:"min",max:"max"})}function we(e,t){let r={},n=e.advanced?.length;return n&&(n.min!==void 0&&(r[t.min]=n.min),n.max!==void 0&&(r[t.max]=n.max)),r}function Me(e,t){let r={};for(let[n,o]of c(t))r[`${e}-${n}`]=o;return r}function De(e){return Me(K,e)}function Oe(e){return Me(Q,e)}function ve(e,t){let r=De(e.advanced?.aria);return t&&t.length>0&&(r[z]="true",r[W]=`${e.name}-error`),r}function ke(e){return Oe(e.advanced?.data)}function Ve(e){if(!e.field.type)return null;let t=Pe(e.field,e.disabled),r=ke(e.field),n=ve(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}import{jsx as pt,jsxs as gt}from"react/jsx-runtime";function Ye(e){return gt("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&pt("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{twMerge as yt}from"tailwind-merge";import{jsx as Ue,jsxs as bt}from"react/jsx-runtime";function Xe(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return bt("div",{...t&&{[J]:"true"},"data-slot":"field",className:yt("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",he(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&Ue(Ye,{name:e.field.name,required:e.field.required,children:e.field.label}),Ue(Ve,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}import{jsx as xt}from"react/jsx-runtime";var Ge=e=>xt(R,{...e,components:{column:Se,field:Xe}});import{jsx as F}from"react/jsx-runtime";function S(e){return F(O,{control:e.children,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>F(Ge,{disabled:t,fields:r,children:n=>F(be,{...n,config:e.config,source:e.source,value:e.value})})})}import{Suspense as At}from"react";import{jsx as Be}from"react/jsx-runtime";function Tt(e){return Be(At,{fallback:Be(S,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}export{Tt as Fallback,S as Form};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const Column: (props: Readonly<Omit<Readonly<{
|
|
2
2
|
children?: React.ReactNode;
|
|
3
|
-
column?: import("../../../type").Column
|
|
3
|
+
column?: import("../../../type").Column;
|
|
4
4
|
errors?: Record<string, string[]>;
|
|
5
5
|
}>, "errors">>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Column
|
|
1
|
+
import type { Column } from '../type';
|
|
2
2
|
export type ColumnProps = Readonly<{
|
|
3
3
|
children?: React.ReactNode;
|
|
4
|
-
column?: Column
|
|
4
|
+
column?: Column;
|
|
5
5
|
errors?: Record<string, string[]>;
|
|
6
6
|
}>;
|
|
7
7
|
export declare function Column(props: ColumnProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/types/type.d.ts
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
2
|
export type Nullable<T> = T | null;
|
|
3
|
-
export type
|
|
4
|
-
|
|
3
|
+
export type DataAttributes = {
|
|
4
|
+
[key: `data-${string}`]: string | number | boolean;
|
|
5
5
|
};
|
|
6
|
-
export type
|
|
7
|
-
|
|
6
|
+
export type AriaAttributes = {
|
|
7
|
+
[key: `aria-${string}`]: string | number | boolean;
|
|
8
8
|
};
|
|
9
|
-
export type Sections = Section[];
|
|
10
|
-
export type Value = string | number | readonly string[];
|
|
11
|
-
export type Fields = Array<Field | Column<Field>>;
|
|
12
|
-
export type Base = Orderable & Hideable;
|
|
13
|
-
export type Section = {
|
|
14
|
-
description?: string;
|
|
15
|
-
fields?: Fields;
|
|
16
|
-
separator?: boolean;
|
|
17
|
-
title?: string;
|
|
18
|
-
} & Base;
|
|
19
9
|
export type DataSource = {
|
|
20
10
|
url: string;
|
|
21
11
|
body?: BodyInit | Record<string, unknown>;
|
|
@@ -27,19 +17,16 @@ export type DataSource = {
|
|
|
27
17
|
export type Source = {
|
|
28
18
|
[key: string]: DataSource | Array<unknown>;
|
|
29
19
|
};
|
|
30
|
-
export type
|
|
31
|
-
|
|
32
|
-
cols?: number;
|
|
33
|
-
};
|
|
34
|
-
fields?: T[];
|
|
35
|
-
type: 'column';
|
|
36
|
-
} & Base;
|
|
37
|
-
export type DataAttributes = {
|
|
38
|
-
[key: `data-${string}`]: string | number | boolean;
|
|
20
|
+
export type Orderable = {
|
|
21
|
+
order?: number;
|
|
39
22
|
};
|
|
40
|
-
export type
|
|
41
|
-
|
|
23
|
+
export type Hideable = {
|
|
24
|
+
hidden?: boolean;
|
|
42
25
|
};
|
|
26
|
+
export type Sections = Array<Section>;
|
|
27
|
+
export type Value = string | number | readonly string[];
|
|
28
|
+
export type Fields = Array<Field | Column>;
|
|
29
|
+
export type Base = Orderable & Hideable;
|
|
43
30
|
export type CommonProps = {
|
|
44
31
|
disabled?: boolean;
|
|
45
32
|
id?: string;
|
|
@@ -47,6 +34,19 @@ export type CommonProps = {
|
|
|
47
34
|
placeholder?: string;
|
|
48
35
|
required?: boolean;
|
|
49
36
|
};
|
|
37
|
+
export type Section = {
|
|
38
|
+
description?: string;
|
|
39
|
+
fields?: Fields;
|
|
40
|
+
separator?: boolean;
|
|
41
|
+
title?: string;
|
|
42
|
+
} & Base;
|
|
43
|
+
export type Column = {
|
|
44
|
+
advanced?: {
|
|
45
|
+
cols?: number;
|
|
46
|
+
};
|
|
47
|
+
fields?: Array<Field>;
|
|
48
|
+
type: 'column';
|
|
49
|
+
} & Base;
|
|
50
50
|
export type Field = CommonProps & {
|
|
51
51
|
advanced?: {
|
|
52
52
|
aria?: AriaAttributes;
|
|
@@ -54,33 +54,29 @@ export type Field = CommonProps & {
|
|
|
54
54
|
data?: DataAttributes;
|
|
55
55
|
};
|
|
56
56
|
description?: string;
|
|
57
|
+
fields?: undefined;
|
|
57
58
|
label?: string;
|
|
58
59
|
name: string;
|
|
59
60
|
readonly?: boolean;
|
|
60
61
|
type: string;
|
|
61
62
|
validation?: {
|
|
62
63
|
required?: string;
|
|
63
|
-
length?:
|
|
64
|
-
max?: string;
|
|
65
|
-
min?: string;
|
|
66
|
-
};
|
|
64
|
+
length?: Length<string>;
|
|
67
65
|
};
|
|
68
66
|
} & Base;
|
|
67
|
+
export type Length<T> = {
|
|
68
|
+
max?: T;
|
|
69
|
+
min?: T;
|
|
70
|
+
};
|
|
69
71
|
export type Input = Field & {
|
|
70
72
|
advanced?: {
|
|
71
73
|
autocomplete?: string;
|
|
72
|
-
length?:
|
|
73
|
-
max?: number;
|
|
74
|
-
min?: number;
|
|
75
|
-
};
|
|
74
|
+
length?: Length<number>;
|
|
76
75
|
};
|
|
77
76
|
};
|
|
78
77
|
export type Select = Field & {
|
|
79
78
|
advanced?: {
|
|
80
|
-
length?:
|
|
81
|
-
min?: number | string;
|
|
82
|
-
max?: number | string;
|
|
83
|
-
};
|
|
79
|
+
length?: Length<number | string>;
|
|
84
80
|
};
|
|
85
81
|
};
|
|
86
82
|
export type Slot = (props: {
|
|
@@ -3,3 +3,4 @@ export declare function getCurrentValue<T>(value: T, entity?: string): Value | u
|
|
|
3
3
|
export declare function getValue<T>(value: Record<string, T>, namespace?: string): T | undefined;
|
|
4
4
|
export declare function getArray<T>(value: Record<string, T> | T[], namespace?: string): Nullable<T[]>;
|
|
5
5
|
export declare function extract<T>(value: Record<string, T>, namespace?: string): T | null;
|
|
6
|
+
export declare function getType(value?: string): string;
|
|
@@ -5,10 +5,9 @@ export declare function isOptions(field: Field): field is Input;
|
|
|
5
5
|
export declare const isInput: (field: Field) => field is Input;
|
|
6
6
|
export declare const isRadio: (field: Field) => field is Select;
|
|
7
7
|
export declare const isSelect: (field: Field) => field is Select;
|
|
8
|
-
export declare function isColumn(slot: Field | Column
|
|
9
|
-
export declare function isField(slot: Field | Column
|
|
8
|
+
export declare function isColumn(slot: Field | Column): slot is Column;
|
|
9
|
+
export declare function isField(slot: Field | Column): slot is Field;
|
|
10
10
|
export declare function isTextArea(field: Field): field is Input;
|
|
11
11
|
export declare function isText(field: Field): field is Input;
|
|
12
12
|
export declare function isNumber(field: Field): field is Input;
|
|
13
13
|
export declare function isEmail(field: Field): field is Input;
|
|
14
|
-
export declare function getType(value?: string): string;
|