react-luna-form 0.0.17 → 0.0.18
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/config/cjs/index.js +1 -1
- package/dist/config/esm/index.js +1 -1
- package/dist/server/cjs/index.js +1 -1
- package/dist/server/esm/index.js +1 -1
- package/dist/types/luna-core/src/index.d.ts +4 -4
- package/dist/types/luna-core/src/type.d.ts +13 -6
- package/dist/types/luna-core/src/util/operator.d.ts +1 -0
- package/dist/types/luna-core/src/util/schema.d.ts +4 -4
- package/dist/types/luna-react/src/client/component/form-content.d.ts +1 -0
- package/dist/types/luna-react/src/client/component/form.d.ts +1 -0
- package/dist/types/luna-react/src/client/component/input.d.ts +4 -2
- package/dist/types/luna-react/src/client/hook/use-fetch.d.ts +1 -1
- package/dist/types/luna-react/src/client/hook/use-form-action.d.ts +2 -2
- package/dist/types/luna-react/src/client/hook/use-input.d.ts +1 -1
- package/dist/types/luna-react/src/client/hook/use-schema.d.ts +2 -2
- package/dist/types/luna-react/src/client/hook/use-timeout.d.ts +1 -1
- package/dist/types/luna-react/src/client/lib/source-store.d.ts +0 -3
- package/dist/types/luna-react/src/component/field/field-base.d.ts +2 -3
- package/dist/types/luna-react/src/component/input/input-base.d.ts +2 -1
- package/dist/types/luna-react/src/component/input-group.d.ts +5 -1
- package/dist/types/luna-react/src/component/input-label.d.ts +4 -1
- package/dist/types/luna-react/src/server/component/form.d.ts +2 -2
- package/dist/types/luna-react/src/server/component/input.d.ts +3 -2
- package/dist/types/luna-react/src/type.d.ts +2 -1
- package/package.json +3 -3
- package/dist/types/luna-react/src/client/component/slot.d.ts +0 -6
package/dist/client/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var $n=Object.create;var ie=Object.defineProperty;var Wn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var Kn=Object.getPrototypeOf,zn=Object.prototype.hasOwnProperty;var jn=(e,t)=>{for(var r in t)ie(e,r,{get:t[r],enumerable:!0})},tt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zn(t))!zn.call(e,o)&&o!==r&&ie(e,o,{get:()=>t[o],enumerable:!(n=Wn(t,o))||n.enumerable});return e};var Jn=(e,t,r)=>(r=e!=null?$n(Kn(e)):{},tt(t||!e||!e.__esModule?ie(r,"default",{value:e,enumerable:!0}):r,e)),Qn=e=>tt(ie({},"__esModule",{value:!0}),e);var $o={};jn($o,{Form:()=>Un});module.exports=Qn($o);var nt=require("react/jsx-runtime");function rt(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,nt.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var ot=require("react/jsx-runtime");function j(e){return(0,ot.jsx)("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var le="input",it="input/email",lt="input/number";var at="textarea",ct="radio",st="checkbox",ut="select",dt="select/month",ft="select/year";var we="column";var mt="label",G="value",ae="options",Oe="email",pt="number",gt="password",yt="tel",J="text",bt="aria-errormessage",Tt="aria-invalid",xt="data-invalid",ht="data-readonly",St="aria",At="data",ce="min",se="max",Rt="minLength",Et="maxLength",X="$ref";var Ct="source",Ft="state",ue="http://luna.internal",F="vertical",Y="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function de(e){return e==null||e===""}function N(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function A(e){return typeof e=="string"}function Nt(e){return c(e)&&"url"in e}var eo=/[^/]+$/;function It(e,t=[],r=G){if(Array.isArray(t))return t.find(n=>{let o=Ve(n,r);if(o!==void 0&&`${o}`===e)return n})??{value:e}}function Ve(e,t=G){if(e!=null){if(N(e))return e;if(c(e)){let r=to(e,t);if(N(r))return r}}}function to(e,t){let r=T(e,t);if(N(r))return r}function vt(e,t){if(Array.isArray(e))return e;let r=T(e,t);return Array.isArray(r)?r:null}function T(e,t){if(!t||!c(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(c(n)&&o in n)n=n[o];else return null;return n}function kt(e,t={label:mt,value:G}){return e.map(r=>{if(c(r)){let n=T(r,t.label),o=T(r,t.value);if(N(n)&&N(o))return{label:`${n}`,value:`${o}`}}return r})}function Pt(e=J){if(e){let t=e.match(eo);if(t){let[r]=t;if(r!==le)return r.trim().toLowerCase()}}return J}function wt(e){let t={};for(let r of e.keys()){let n=e.getAll(r);t[r]=n.length>1?n:n[0]}return t}var ro=/\[([^\]]+)\]\(([^)]+)\)/g;function k(e,t={}){if(A(e))return no(e,t);if(Array.isArray(e))return e.map(r=>k(r,t));if(c(e)){let r={};for(let n in e)r[n]=k(e[n],t);return r}return e}function fe(e){return A(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>fe(t)):c(e)?Object.values(e).some(t=>fe(t)):!1}function no(e,t={}){return e.replace(/{([^}]+)}/g,(r,n)=>{let o=n.includes(".")?T(t,n):t[n];return N(o)?String(o):r})}function Ot(e,t){if(!e||e.trim().length===0)return null;let r,n=0,o=!1,i=[];for(;(r=ro.exec(e))!==null;){let[l,a,f]=r,s=r.index;o=!0,s>n&&i.push(e.substring(n,s));let d=t?t(s,f,a):l;i.push(d),n=s+l.length}return o?(n<e.length&&i.push(e.substring(n)),i):e}var me=e=>x(dt)(e),pe=e=>x(ft)(e),m=x(st),De=x(le),R=x(ct),p=x(ut),Le=x(at),Vt=x(J,Oe,gt,yt),Dt=x(it,Oe),ge=x(lt,pt);function ye(e){return R(e)||m(e)}function Lt(e){return e.type===we}function Mt(e){return e.type!==we}function _t(e){return p(e)||R(e)}function Ut(e){return De(e)||Le(e)}function Q(e){return e!=null&&e!==""}function x(...e){return t=>{let r=A(t.type)?t.type:void 0;return r?e.some(n=>r===n||r?.startsWith(`${n}/`)):!1}}function Bt(e,t={}){if(p(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function be(e){return R(e)||m(e)?Y:e.advanced?.orientation??F}function Gt(e,t){let r=e.readonly??!1;return t||r}function Xt(e){if(R(e)||p(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(X in t))return t}}function Yt(e,t){let r=Xt(e);return r||Bt(e,t)}function oo(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return Ve(r,e.advanced?.entity)}function io(e,t,r){return _t(e)&&Array.isArray(r)?{...t,[ae]:r}:t}function lo(e,t,r){if(e.required&&!Q(r)&&p(e)&&e.advanced?.preselected!==!1&&ae in t){let n=t[ae];if(Array.isArray(n)&&n.length===1)return n[0]}return r}function ao(e,t){return p(e)&&Array.isArray(t)?kt(t,e.advanced?.options):t}function qt(e,t,r,n){let o=oo(e,n),i=Array.isArray(r)?ao(e,r):r,l=io(e,t,i),a=lo(e,l,o);return{commonPropsWithOptions:l,defaultValue:a}}function Ht(e,t){return m(e)?{checked:Q(t)?t:!1}:{value:t??""}}var co=/^#\/definition\//;function xe(e=[],t){let r=Te(e,t);return Array.isArray(r)?r.sort((n,o)=>$t(n)-$t(o)):[]}function Te(e,t,r=new Map,n=new WeakSet){if(!so(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(n.has(e))return e;if(n.add(e),Array.isArray(e))return e.map(i=>Te(i,t,r,n));if(X in e&&A(e[X])){let i=e[X].replace(co,""),l=T(t,i);return l!==null?Te(l,t,r,n):e}let o={};for(let[i,l]of Object.entries(e))o[i]=Te(l,t,r,n);return n.delete(e),r.set(e,o),o}function Wt(e){return Object.entries(e??{})}function $t(e){return e.order??Number.MAX_VALUE}function so(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function Zt(e,t){let r={};for(let[n,o]of Wt(t))r[`${e}-${n}`]=o;return r}function Kt(e){return Zt(St,e)}function zt(e){return Zt(At,e)}var jt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Jt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Qt(e,t=2){return jt[e&&e in jt?e:t]}function er(e){if(e&&e in Jt)return Jt[e]}var uo=/^\d+$/;function tr(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function rr(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 Me(){return new Date().getFullYear()}function _e(e,t){if(typeof e=="number")return e;let r=t??Me(),n=e.trim().toLowerCase();if(n.startsWith("current")){let o=n.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return uo.test(n)?parseInt(n,10):r}var Ge={error:(...e)=>{Ue()&&Be()},warn:(...e)=>{Ue()&&Be()},info:(...e)=>{Ue()&&Be()}};function Ue(){return typeof console<"u"}function Be(){return!0}var u=require("zod");var fo=[[ge,bo],[Dt,mo],[pe,To],[me,xo],[m,po],[R,go]];function nr(e){return u.z.object(e)}function or(e){let t={},r=u.z.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function ir(e){for(let[t,r]of fo)if(t(e))return r(e);return yo(e)}function mo(e){let t=u.z.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.z.email(e.validation?.email));return u.z.preprocess(n=>de(n)?"":n,r)}return t.pipe(u.z.email(e.validation?.email)).or(u.z.literal("")).nullable()}function po(e){let t=u.z.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.z.preprocess(r=>r===null?!1:r,t)):t.nullable()}function go(e){let t=u.z.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.z.preprocess(r=>de(r)?"":r,t)):t.or(u.z.literal("")).nullable()}function yo(e){let t=u.z.coerce.string().trim();return t=lr(t,e),e.required?(t=ar(t,e),u.z.preprocess(r=>de(r)?"":r,t)):t.nullable()}function bo(e){let t=u.z.coerce.number().int();return t=lr(t,e),e.required?(t=ar(t,e),u.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function To(e){if(e.required){let t=u.z.coerce.number({message:e.validation?.required}).int();return u.z.preprocess(ho,t)}return u.z.coerce.number().int().nullable()}function xo(e){let t=u.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function ho(e){return e===null||e===""?void 0:e}function lr(e,t){return e=So(e,t),e=Ao(e,t),e}function ar(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var So=(e,t)=>cr(e,t,ce),Ao=(e,t)=>cr(e,t,se);function cr(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}function sr(e,t){if(!t||!Eo(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),n=r.protocol.replace(":",""),o=r.hostname,i=r.port||Ro(n);return t.some(l=>!(l.protocol&&l.protocol!==n||l.hostname&&l.hostname!==o||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function Ro(e){return e==="https"?"443":"80"}function Eo(e){return/^(https?:)?\/\//.test(e)}function ur(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,ue);new URL(t,ue).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let o=r.toString();return e.startsWith("/")||!e.includes("://")?o.replace(ue,""):o}catch{return t||e}}function dr(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let n=ur(t.url,r.url),o=Co(t,r),i=Fo(t,r);return{...t,...r,url:n,body:o,headers:i}})}function Co(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Fo(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function he(e,t){return{...e,...t}}function fr(e=[],t){let r=[],n=[],o=[];e.forEach(i=>{i.action===G&&r.push(i),i.action===Ct&&n.push(i),i.action===Ft&&o.push(i)}),t({sources:n,states:o,values:r})}function mr(e=null,t=[],r){t.forEach(n=>{let{target:o,source:i}=n;if(!e){r(o,void 0);return}if(Nt(i)){let l=k(i.url,e),a=i.body?k(i.body,e):i.body;r(o,{...i,url:l,body:a})}})}function pr(e=null,t=[],r){t.forEach(n=>{let{target:o,state:i,when:l}=n;if(!e){r(o);return}let a=No(e,l);r(o,a?i:void 0)})}function No(e,t){if(t===void 0)return!0;if(A(t))return Xe(e,"value")===t;if(Array.isArray(t)){let r=Xe(e,"value");return t.includes(String(r))}return Io(e,t)}function Io(e=null,t){let r=Xe(e,t.field??"value"),{operator:n="eq",value:o}=t,i=vo[n];return i?i(r,o):!1}var vo={eq:ko,neq:Po,in:wo,nin:Oo};function ko(e,t){return e===t}function Po(e,t){return e!==t}function wo(e,t){return Array.isArray(t)&&t.includes(String(e))}function Oo(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Xe(e,t){return c(e)?t.includes(".")?T(e,t):e[t]:e}function gr(e=null,t=[],r){t.forEach(n=>{Object.entries(n.value).forEach(([o,i])=>{r(o,e?k(i,e):void 0)})})}var yr=require("react/jsx-runtime");function ee(e){return Ot(e,(t,r,n)=>(0,yr.jsx)("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:n},`${r}-${t}`))}var P=require("react/jsx-runtime");function br(e){return(0,P.jsxs)(P.Fragment,{children:[e.title&&(0,P.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:ee(e.title)}),e.description&&(0,P.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:ee(e.description)})]})}var q=require("react/jsx-runtime");function Tr(e){let t=e.section.fields||[],{compact:r}=he(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,q.jsx)(j,{compact:r,children:e.children}):(0,q.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[(0,q.jsx)(br,{description:e.section.description,title:e.section.title}),(0,q.jsx)(j,{compact:r,children:e.children})]})}var hr=require("react");var Ye=require("react/jsx-runtime");function xr(){return(0,Ye.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,Ye.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var E=require("react/jsx-runtime");function Sr(e){let t=xe(e.sections,e.definition);return(0,E.jsx)("div",{className:"h-full w-full",children:(0,E.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,E.jsxs)(j,{children:[t.map((r,n)=>(0,E.jsxs)(hr.Fragment,{children:[(0,E.jsx)(Tr,{section:r,style:e.config.style,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,E.jsx)(xr,{})]},n)),e.control&&(0,E.jsx)(rt,{isPending:e.isPending,children:e.control})]})})})}var Rr=require("react/jsx-runtime");function Ar(e){return(0,Rr.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var Er=require("react/jsx-runtime");function Se(e){let t=ee(e.text);return t?(0,Er.jsx)(Ar,{children:t}):null}var Cr=require("tailwind-merge"),Ae=require("react/jsx-runtime");function Fr(e){let t=R(e.field)||m(e.field);return(0,Ae.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,Cr.twMerge)("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&(0,Ae.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var te=require("react/jsx-runtime");function Nr(e){return(0,te.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,te.jsx)(Fr,{field:e.field,children:e.field.label}),e.orientation===Y&&(0,te.jsx)(Se,{text:e.field.description})]})}var w=require("react/jsx-runtime");function Ir(e){let t=be(e.field);return(0,w.jsxs)(w.Fragment,{children:[e.field.name&&e.field.label&&(0,w.jsx)(Nr,{field:e.field,orientation:t}),e.children,t===F&&e.field.description&&(0,w.jsx)(Se,{text:e.field.description})]})}var I=require("jotai"),qe=require("jotai-family"),Re=require("fast-equals");function Vo(e){return(0,qe.atomFamily)(t=>(0,I.atom)(r=>r(e)[t]??void 0,(r,n,o)=>{let i=r(e);if(o!=null){let l=i[t];(!l||!(0,Re.deepEqual)(l,o))&&n(e,{...i,[t]:o})}else if(i[t]){let{[t]:l,...a}=i;n(e,a)}}))}function Do(e){return(0,I.atom)(null,(t,r)=>{let n=t(e);n&&Object.keys(n).length>0&&r(e,{})})}function Lo(e){return(0,I.atom)(null,(t,r,n)=>{let i={...t(e)},l=!1;for(let a of n)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function Mo(e){return(0,I.atom)(null,(t,r,n)=>{let o=t(e);(0,Re.deepEqual)(o,n)||r(e,n)})}function vr(e,t={}){let{merge:r,validateTarget:n}=t;return(0,qe.atomFamily)(o=>(0,I.atom)(i=>{let l=i(e)[o];if(l&&r)return r(Object.values(l))},(i,l,a,f)=>{if(n&&!n(a))return;let s=i(e),d={...s[a]??{}};if(f!=null){let g=d[o];(!g||!(0,Re.deepEqual)(g,f))&&(d[o]=f,l(e,{...s,[a]:d}))}else if(d[o])if(delete d[o],Object.keys(d).length===0){let{[a]:g,...D}=s;l(e,D)}else l(e,{...s,[a]:d})}))}function kr(e){return(0,I.atom)(null,(t,r,n)=>{let i={...t(e)},l=!1;for(let a of n)i[a]&&(delete i[a],l=!0);for(let a in i){let f={...i[a]},s=!1;for(let d of n)f[d]&&(delete f[d],s=!0,l=!0);s&&(Object.keys(f).length===0?delete i[a]:i[a]=f)}l&&r(e,i)})}function H(e={}){let t=(0,I.atom)(e);return{atom:t,clearAll:Do(t),clear:Lo(t),bulkReport:Mo(t),report:Vo(t)}}var Pr=H(),wr=Pr.atom,Or=Pr.report;function Ee(e,t){return e?t(e):null}var He=H(),Vr=He.clear,Dr=He.bulkReport,Ce=He.report;var V=require("react");var Lr=require("jotai");var Mr=(0,Lr.atom)({}),_r=vr(Mr,{merge:e=>{let t=dr(e);if(t)return t},validateTarget:e=>e.trim()!==""}),Ur=kr(Mr);var Xr=require("jotai");var Br=Jn(require("swr"),1);function Gr(e=null,t,r=!1){let{data:n,error:o}=(0,Br.default)(_o(e,t,r),t.fetcher.provider);if(o&&Ge.error("Error fetching data source:",o),e){if(Array.isArray(e))return[e];if(n)return[vt(n,e.namespace)]}return[null]}function _o(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!fe(e.url)){if(sr(e.url,t.fetcher.remotePatterns))return e;Ge.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Yr(e,t,r){let n=Yt(e,r),[o,i]=(0,Xr.useAtom)(_r(e.name)),l=o??n,[a]=Gr(l,t,e.disabled);return[a,i]}var O=require("react");function qr(e,t,r){let{name:n}=e,o=(0,O.useMemo)(()=>ir(e),[e]),i=(0,O.useEffectEvent)(a=>{a&&t(a,o)}),l=(0,O.useEffectEvent)(a=>{a&&r(a)});return(0,O.useEffect)(()=>(i(n),()=>{l(n)}),[n]),[o]}var Ie=require("jotai");var Fe=require("react");function Hr(){let e=(0,Fe.useRef)(null);(0,Fe.useEffect)(()=>{let n=e.current;return()=>{n&&clearTimeout(n)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(n,o){t(),e.current=setTimeout(n,o)}return[r,t]}var Ne=H(),$r=Ne.atom,Wr=Ne.clearAll,Zr=Ne.clear,Kr=Ne.report;var zr=require("jotai"),$=require("react");function jr(e,t){let{name:r}=e,n=(0,$.useRef)(!1),[o,i]=(0,zr.useAtom)(Kr(r));(0,$.useEffect)(()=>{if(!t||!(r in t))return;let a=t[r];Q(a)&&(n.current=!0,i(a))},[r,t,i]);let l=(0,$.useCallback)(()=>n.current?(n.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:l,value:o}}var $e=require("react/jsx-runtime");function Jr(e){let t=e.field.advanced?.entity,[r]=Hr(),[,n]=(0,V.useTransition)(),{setValue:o,shouldSkipOnChange:i,value:l}=jr(e.field,e.value),a=Ut(e.field),f=ye(e.field),s=(0,Ie.useSetAtom)($r),d=(0,Ie.useSetAtom)(wr),g=(0,Ie.useSetAtom)(Ce(e.field.name)),[D]=qr(e.field,e.onMount,e.onUnmount),[L,M]=Yr(e.field,e.config,l),{commonPropsWithOptions:C,defaultValue:K}=qt(e.field,e.commonProps,L,l),S=Ht(e.field,K),ne=(0,V.useCallback)(y=>{let _=D.safeParse(y).error?.issues.map(z=>z.message)??[];g(_)},[g,D]),et=(0,V.useCallback)((y,b)=>{if(a){r(()=>{b({value:y})},500);return}let _=It(y,L,t);b(_)},[L,t,a,r]),Bn=(0,V.useCallback)(y=>{let b=y.target.value;if(i()&&(!a||b===l))return;o(b),e.config.validation.change&&ne(b);let _=e.field.event?.change;_&&et(b,z=>{fr(_,({sources:Xn,states:Yn,values:qn})=>{n(()=>{mr(z,Xn,(U,B)=>M(U,B)),pr(z,Yn,(U,B)=>{d(oe=>{if(B)return{...oe,[U]:B};let{[U]:Wo,...Hn}=oe;return Hn})}),gr(z,qn,(U,B)=>{s(oe=>({...oe,[U]:B}))})})})})},[et,a,e.config.validation.change,e.field.event?.change,d,M,o,s,i,ne,l]),Gn=(0,V.useCallback)(y=>{if(!f){let b=y.target.value;e.config.validation.blur&&ne(b)}},[f,e.config.validation.blur,ne]);return Ee(e.config.inputs[e.field.type],y=>(0,$e.jsx)(Ir,{field:e.field,children:(0,$e.jsx)(y,{...C,...e.ariaAttributes,...e.dataAttributes,...S,onBlur:Gn,onChange:Bn})}))}var We=require("react/jsx-runtime");function Qr(e){return!e.errors||e.errors.length===0?null:(0,We.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,We.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var en=require("tailwind-merge"),tn=require("react/jsx-runtime");function ve(e){let t=e.errors&&e.errors.length>0;return(0,tn.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[xt]:"true"},...e.disabled&&{[ht]:"true"},"data-orientation":e.orientation,className:(0,en.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",er(e.cols),e.className),children:e.children})}var rn=require("tailwind-merge"),on=require("react/jsx-runtime");function nn(e){return(0,on.jsx)(ve,{...e,orientation:F,className:(0,rn.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var ln=require("tailwind-merge"),cn=require("react/jsx-runtime");function an(e){return(0,cn.jsx)(ve,{...e,orientation:Y,className:(0,ln.twMerge)("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}var Ze=require("react/jsx-runtime");function sn(e){let t=ye(e.field),r=m(e.field);return e.orientation===F?(0,Ze.jsx)(nn,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:r,isClickable:t,children:e.children}):(0,Ze.jsx)(an,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:r,isClickable:t,children:e.children})}var ke=Me();function un(e){if(p(e))return Uo(e)}function Uo(e){if(me(e))return tr();if(pe(e)){let t=e.advanced?.length?.min??ke,r=e.advanced?.length?.max??ke+5;return rr(_e(t,ke),_e(r,ke))}}function dn(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return De(e)?{...r,...Bo(e)}:p(e)?{...r,...Go(e)}:Le(e)?{...r,...Xo(e)}:r}function Bo(e){let t=Pt(e.type),r={...e,type:t};return{...fn(e),...Yo(r),...Vt(r)?mn(r):{},type:t}}function Go(e){let t=un(e);return t?{options:t}:{}}function Xo(e){return{...fn(e),...mn(e)}}function fn(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function Yo(e){return ge(e)?qo(e):{}}function mn(e){return pn(e,{min:Rt,max:Et})}function qo(e){return pn(e,{min:ce,max:se})}function pn(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 gn(e,t){let r=Kt(e.advanced?.aria);return t&&t.length>0&&(r[Tt]="true",r[bt]=`${e.name}-error`),r}function yn(e){return zt(e.advanced?.data)}function bn(e){if(!e.field.type)return null;let t=dn(e.field,e.disabled),r=yn(e.field),n=gn(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o})}var W=require("react/jsx-runtime");function Tn(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:n}=he(e.style,{orientation:be(e.field)}),o=Gt(e.field,e.disabled);return(0,W.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,W.jsx)(sn,{cols:t,disabled:o,errors:r,field:e.field,orientation:n,children:(0,W.jsx)(bn,{disabled:o,errors:r,field:e.field,children:e.children})}),(0,W.jsx)(Qr,{errors:r,name:e.field.name})]})}var xn=require("jotai"),Sn=require("react/jsx-runtime");function hn(e){return r=>{let n=(0,xn.useAtomValue)(Ce(r.field.name));return(0,Sn.jsx)(e,{...r,errors:n?{[r.field.name]:n}:void 0})}}var An=require("jotai"),En=require("react/jsx-runtime");function Rn(e){return r=>{let n=(0,An.useAtomValue)(Or(r.field.name));if(n?.hidden??r.field.hidden??!1)return null;let i=n?.disabled??r.disabled;return(0,En.jsx)(e,{...r,disabled:i})}}var Cn=Rn(hn(Tn));var Fn=require("tailwind-merge"),Ke=require("react/jsx-runtime");function Nn(e){let t=Qt(e.column?.advanced?.cols);return(0,Ke.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,Ke.jsx)("div",{className:(0,Fn.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var In=require("react"),Z=require("react/jsx-runtime");function ze(e){let{column:t,field:r}=e.components;return xe(e.fields).map((n,o)=>(0,Z.jsxs)(In.Fragment,{children:[Lt(n)&&(0,Z.jsx)(t,{column:n,children:(0,Z.jsx)(ze,{...e,fields:n.fields})}),Mt(n)&&(0,Z.jsx)(r,{disabled:e.disabled,field:n,style:e.style,children:e.children})]},o))}var kn=require("react/jsx-runtime");function vn(e){return r=>(0,kn.jsx)(ze,{...r,components:{column:Nn,field:e}})}var Pn=vn(Cn);var Je=require("jotai");var re=require("react");function On(e,t,r){let{onSuccess:n,preserveValues:o=!1,validation:i=!0}=r??{},l=(0,Je.useSetAtom)(Dr),a=(0,Je.useSetAtom)(Wr),f={data:null,error:null,success:!1},[s,d,g]=(0,re.useActionState)(async(D,L)=>{let M=nr(e());if(i===!1)return t?await t(L,M):D;let C=wt(L),K=M.safeParse(C);if(!K.success){let S=or(K.error);return(0,re.startTransition)(()=>{l(S)}),je(C,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let S=await t(C,M);return S.success?(n?.(S.data),o||(0,re.startTransition)(()=>{a()}),wn(C,o)):je(C,S.error)}catch(S){return je(C,{title:"An unexpected error occurred submitting the form.",details:Ho(S)})}return wn(K.data,o)},f);return[d,s,g]}function Ho(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function wn(e,t=!1){return{data:t?e:null,error:null,success:!0}}function je(e,t){return{data:e,error:t,success:!1}}var v=require("react");var Vn=require("react"),Pe=require("jotai");function Dn(){let e=(0,Pe.useSetAtom)(Vr),t=(0,Pe.useSetAtom)(Ur),r=(0,Pe.useSetAtom)(Zr);return(0,Vn.useCallback)(n=>{let o=Array.isArray(n)?n:[n];e(o),t(o),r(o)},[e,t,r])}function Ln(){let e=Dn(),t=(0,v.useRef)({}),r=(0,v.useRef)(new Set),n=(0,v.useCallback)((l,a)=>{l in t.current||(t.current[l]=a)},[]),o=(0,v.useCallback)(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),(0,v.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,n,o]}var h=require("react/jsx-runtime");function Mn(e){let[t,r,n]=Ln(),[o,i,l]=On(t,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit}),a=e.config.validation.showError&&!i.success&&i.error,f=i.data??e.value;return(0,h.jsxs)(h.Fragment,{children:[a&&Ee(e.config.alert,s=>(0,h.jsx)("div",{className:"mb-4 w-full",children:(0,h.jsx)(s,{description:i.error?.description,details:i.error?.details,title:i.error.title})})),(0,h.jsx)(Sr,{action:o,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:s,fields:d})=>(0,h.jsx)(Pn,{disabled:s,fields:d,style:e.config.style,children:g=>(0,h.jsx)(Jr,{...g,config:e.config,onMount:r,onUnmount:n,value:f})})})]})}var _n=require("jotai"),Qe=require("react/jsx-runtime");function Un(e){return(0,Qe.jsx)(_n.Provider,{children:(0,Qe.jsx)(Mn,{...e})})}
|
|
1
|
+
"use strict";var Jr=Object.create;var pe=Object.defineProperty;var Qr=Object.getOwnPropertyDescriptor;var eo=Object.getOwnPropertyNames;var to=Object.getPrototypeOf,no=Object.prototype.hasOwnProperty;var ro=(e,t)=>{for(var n in t)pe(e,n,{get:t[n],enumerable:!0})},ct=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of eo(t))!no.call(e,o)&&o!==n&&pe(e,o,{get:()=>t[o],enumerable:!(r=Qr(t,o))||r.enumerable});return e};var oo=(e,t,n)=>(n=e!=null?Jr(to(e)):{},ct(t||!e||!e.__esModule?pe(n,"default",{value:e,enumerable:!0}):n,e)),io=e=>ct(pe({},"__esModule",{value:!0}),e);var di={};ro(di,{Form:()=>Zr});module.exports=io(di);var ut=require("react/jsx-runtime");function st(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,ut.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var dt=require("react/jsx-runtime");function re(e){return(0,dt.jsx)("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var ge="input",ft="input/email",mt="input/number";var pt="textarea",gt="radio",yt="checkbox",bt="select",xt="select/month",Tt="select/year";var Be="column";var ht="label",X="value",ye="options",Ge="email",St="number",Rt="password",At="tel",oe="text",Ct="aria-errormessage",Et="aria-invalid",Ft="data-invalid",Nt="data-readonly",kt="aria",It="data",be="min",xe="max",vt="minLength",wt="maxLength",q="$ref";var Pt="source",Ot="state",Te="http://luna.internal",I="vertical",H="horizontal";function u(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function he(e){return e==null||e===""}function v(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function A(e){return typeof e=="string"}function Dt(e){return u(e)&&"url"in e}var lo=/[^/]+$/;function Vt(e,t=[],n=X){if(Array.isArray(t))return t.find(r=>{let o=Ye(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function Ye(e,t=X){if(e!=null){if(v(e))return e;if(u(e)){let n=ao(e,t);if(v(n))return n}}}function ao(e,t){let n=T(e,t);if(v(n))return n}function Lt(e,t){if(Array.isArray(e))return e;let n=T(e,t);return Array.isArray(n)?n:null}function T(e,t){if(!t||!u(e))return null;let n=t.split(".").filter(o=>o!=="");if(n.length===0)return null;let r=e;for(let o of n)if(u(r)&&o in r)r=r[o];else return null;return r}function Mt(e,t={label:ht,value:X}){return e.map(n=>{if(u(n)){let r=T(n,t.label),o=T(n,t.value);if(v(r)&&v(o))return{label:`${r}`,value:`${o}`}}return n})}function _t(e=oe){if(e){let t=e.match(lo);if(t){let[n]=t;if(n!==ge)return n.trim().toLowerCase()}}return oe}function Ut(e){let t={};for(let n of e.keys()){let r=e.getAll(n);t[n]=r.length>1?r:r[0]}return t}var co=/\[([^\]]+)\]\(([^)]+)\)/g;function h(e,t={}){if(A(e))return so(e,t);if(Array.isArray(e))return e.map(n=>h(n,t));if(u(e)){let n={};for(let r in e)n[r]=h(e[r],t);return n}return e}function O(e){return A(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>O(t)):u(e)?Object.values(e).some(t=>O(t)):!1}function so(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?T(t,r):t[r];return v(o)?String(o):n})}function Bt(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=co.exec(e))!==null;){let[l,a,c]=n,s=n.index;o=!0,s>r&&i.push(e.substring(r,s));let f=t?t(s,c,a):l;i.push(f),r=s+l.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var ie={error:(...e)=>{Xe()&&!qe()&&Se().error("[Luna Form]",...e)},warn:(...e)=>{Xe()&&!qe()&&Se().warn("[Luna Form]",...e)},info:(...e)=>{Xe()&&!qe()&&Se().info("[Luna Form]",...e)}},Xe=()=>typeof Se()<"u",qe=()=>!0,Se=()=>globalThis.console;function Gt(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===X&&n.push(i),i.action===Pt&&r.push(i),i.action===Ot&&o.push(i)}),t({sources:r,states:o,values:n})}function Yt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(Dt(i)){let l=h(i.url,e),a=i.body?h(i.body,e):i.body;n(o,{...i,url:l,body:a})}})}var le={eq:go,gt:To,gte:ho,in:bo,lt:So,lte:Ro,neq:yo,nin:xo},uo=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,Xt=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function fo(e){return typeof e=="string"&&uo.test(e)}function mo(e){return typeof e=="string"&&Xt.test(e)}function po(e){let t=e.match(Xt);if(t){let[,n,r,o,i,l,a]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(l??0),Number(a??0)).getTime()}return NaN}function w(e){return fo(e)?new Date(e).getTime():mo(e)?po(e):Number(e)}function go(e,t){return e===t}function yo(e,t){return e!==t}function bo(e,t){return Array.isArray(t)&&t.includes(String(e))}function xo(e,t){return Array.isArray(t)&&!t.includes(String(e))}function To(e,t){return w(e)>w(t)}function ho(e,t){return w(e)>=w(t)}function So(e,t){return w(e)<w(t)}function Ro(e,t){return w(e)<=w(t)}function qt(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:l}=r;if(!e){n(o);return}let a=Ao(e,l);n(o,a?i:void 0)})}function Ao(e,t){if(t===void 0)return!0;if(A(t))return He(e,"value")===t;if(Array.isArray(t)){let n=He(e,"value");return t.includes(String(n))}return Co(e,t)}function Co(e=null,t){let n=He(e,t.field??"value"),{operator:r="eq",value:o}=t,i=le[r];return i?i(n,o):!1}function He(e,t){return u(e)?t.includes(".")?T(e,t):e[t]:e}function Ht(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?h(i,e):void 0)})})}var Re=e=>S(xt)(e),Ae=e=>S(Tt)(e),p=S(yt),$e=S(ge),C=S(gt),g=S(bt),Ze=S(pt),$t=S(oe,Ge,Rt,At),Zt=S(ft,Ge),Ce=S(mt,St);function Ee(e){return C(e)||p(e)}function Wt(e){return e.type===Be}function Kt(e){return e.type!==Be}function zt(e){return g(e)||C(e)}function jt(e){return $e(e)||Ze(e)}function ae(e){return e!=null&&e!==""}function S(...e){return t=>{let n=A(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Jt(e,t={}){if(g(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&u(n))return[n]}}function Qt(e){return C(e)||p(e)?H:e.advanced?.orientation??I}function en(e,t){let n=e.readonly??!1;return t||n}function tn(e){if(C(e)||g(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||u(t)&&!(q in t))return t}}function nn(e,t){let n=tn(e);return n||Jt(e,t)}function Eo(e,t){let n=u(t)&&e.name in t?t[e.name]:t;return Ye(n,e.advanced?.entity)}function Fo(e,t,n){return zt(e)&&Array.isArray(n)?{...t,[ye]:n}:t}function No(e,t,n){if(e.required&&!ae(n)&&g(e)&&e.advanced?.preselected!==!1&&ye in t){let r=t[ye];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function ko(e,t){return g(e)&&Array.isArray(t)?Mt(t,e.advanced?.options):t}function rn(e,t,n,r){let o=Eo(e,r),i=Array.isArray(n)?ko(e,n):n,l=Fo(e,t,i),a=No(e,l,o);return{commonPropsWithOptions:l,defaultValue:a}}function on(e,t){return p(e)?{checked:ae(t)?t:!1}:{value:t??""}}var Io=/^#\/definition\//;function Ne(e=[],t){let n=Fe(e,t);return Array.isArray(n)?n.sort((r,o)=>ln(r)-ln(o)):[]}function Fe(e,t,n=new Map,r=new WeakSet){if(!vo(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(r.has(e))return e;if(r.add(e),Array.isArray(e))return e.map(i=>Fe(i,t,n,r));if(q in e&&A(e[q])){let i=e[q].replace(Io,""),l=T(t,i);return l!==null?Fe(l,t,n,r):e}let o={};for(let[i,l]of Object.entries(e))o[i]=Fe(l,t,n,r);return r.delete(e),n.set(e,o),o}function an(e){return Object.entries(e??{})}function ln(e){return e.order??Number.MAX_VALUE}function vo(e){return e!==void 0&&u(e)&&Object.keys(e).length>0}function cn(e,t){let n={};for(let[r,o]of an(t))n[`${e}-${r}`]=o;return n}function sn(e){return cn(kt,e)}function un(e){return cn(It,e)}var dn={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},fn={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function mn(e,t=2){return dn[e&&e in dn?e:t]}function pn(e){if(e&&e in fn)return fn[e]}var wo=/^\d+$/;function gn(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function yn(e,t){return t>=e?Array.from({length:t-e+1},(n,r)=>{let o=e+r;return{value:o.toString(),label:o.toString()}}):[]}function We(){return new Date().getFullYear()}function Ke(e,t){if(typeof e=="number")return e;let n=t??We(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,a=parseInt(l,10);if(!isNaN(a))return i==="+"?n+a:n-a}return n}return wo.test(r)?parseInt(r,10):n}var d=require("zod"),Po=[[Ce,Mo],[Zt,Oo],[Ae,_o],[Re,Uo],[p,Do],[C,Vo]];function bn(e,t=[]){let n=d.z.object(e);return t.length===0?n:Xo(n,t)}function xn(e){let t={},n=d.z.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function Tn(e){for(let[t,n]of Po)if(t(e))return n(e);return Lo(e)}function Oo(e){let t=d.z.string().trim();if(e.required){let n=t.min(1,e.validation?.required).pipe(d.z.email(e.validation?.email));return d.z.preprocess(r=>he(r)?"":r,n)}return t.pipe(d.z.email(e.validation?.email)).or(d.z.literal("")).nullable()}function Do(e){let t=d.z.coerce.boolean();return e.required?(t=t.refine(n=>n===!0,{message:e.validation?.required}),d.z.preprocess(n=>n===null?!1:n,t)):t.nullable()}function Vo(e){let t=d.z.coerce.string();return e.required?(t=t.min(1,e.validation?.required),d.z.preprocess(n=>he(n)?"":n,t)):t.or(d.z.literal("")).nullable()}function Lo(e){let t=d.z.coerce.string().trim();return t=hn(t,e),e.required?(t=Sn(t,e),d.z.preprocess(n=>he(n)?"":n,t)):t.nullable()}function Mo(e){let t=d.z.coerce.number().int();return t=hn(t,e),e.required?(t=Sn(t,e),d.z.preprocess(n=>n===null?void 0:n,t)):t.nullable()}function _o(e){if(e.required){let t=d.z.coerce.number({message:e.validation?.required}).int();return d.z.preprocess(Bo,t)}return d.z.coerce.number().int().nullable()}function Uo(e){let t=d.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Bo(e){return e===null||e===""?void 0:e}function hn(e,t){return e=Go(e,t),e=Yo(e,t),e}function Sn(e,t){let n=t.advanced?.length?.min;return n===void 0||n<1?e.min(1,t.validation?.required):e}var Go=(e,t)=>Rn(e,t,be),Yo=(e,t)=>Rn(e,t,xe);function Rn(e,t,n){let r=t.advanced?.length?.[n];return r!==void 0?e[n](r,t.validation?.length?.[n]):e}function Xo(e,t=[]){let n=Ho(t);return n.length===0?e:e.superRefine((r,o)=>{for(let{name:i,rule:l}of n)qo(r,i,l)||o.addIssue({code:"custom",message:l.message,path:[i]})})}function qo(e,t,n){let r=n.operator??"eq",o=le[r];return o?o(e[t],e[n.field]):!1}function Ho(e){let t=[];for(let n of e){let r=n.validation?.custom;if(!r)continue;let o=Array.isArray(r)?r:[r];for(let i of o)t.push({name:n.name,rule:i})}return t}function An(e,t,n){let r=[],o=Array.isArray(t)?t:[t];for(let i of o){let l=i.operator??"eq",a=le[l];a&&!a(e,n(i.field))&&i.message&&r.push(i.message)}return r}function Cn(e,t){if(!t||!Zo(e))return!0;if(t.length===0)return!1;try{let n=new URL(e),r=n.protocol.replace(":",""),o=n.hostname,i=n.port||$o(r);return t.some(l=>!(l.protocol&&l.protocol!==r||l.hostname&&l.hostname!==o||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function $o(e){return e==="https"?"443":"80"}function Zo(e){return/^(https?:)?\/\//.test(e)}function En(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,Te);new URL(t,Te).searchParams.forEach((i,l)=>{n.searchParams.set(l,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(Te,""):o}catch{return t||e}}function Fn(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=En(t.url,n.url),o=Wo(t,n),i=Ko(t,n);return{...t,...n,url:r,body:o,headers:i}})}function Wo(e,t){return u(t.body)&&u(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Ko(e,t){return u(t.headers)&&u(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function ke(e,t){return{...e,...t}}var Nn=require("react/jsx-runtime");function ce(e){return Bt(e,(t,n,r)=>(0,Nn.jsx)("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}var D=require("react/jsx-runtime");function kn(e){return(0,D.jsxs)(D.Fragment,{children:[e.title&&(0,D.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:ce(e.title)}),e.description&&(0,D.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:ce(e.description)})]})}var $=require("react/jsx-runtime");function In(e){let t=e.section.fields||[],{compact:n}=ke(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,$.jsx)(re,{compact:n,children:e.children}):(0,$.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[(0,$.jsx)(kn,{description:e.section.description,title:e.section.title}),(0,$.jsx)(re,{compact:n,children:e.children})]})}var wn=require("react");var ze=require("react/jsx-runtime");function vn(){return(0,ze.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,ze.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var E=require("react/jsx-runtime");function Pn(e){let t=Ne(e.sections,e.definition);return(0,E.jsx)("div",{className:"h-full w-full",children:(0,E.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,E.jsxs)(re,{children:[t.map((n,r)=>(0,E.jsxs)(wn.Fragment,{children:[(0,E.jsx)(In,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&(0,E.jsx)(vn,{})]},r)),e.control&&(0,E.jsx)(st,{isPending:e.isPending,children:e.control})]})})})}var Dn=require("react/jsx-runtime");function On(e){return(0,Dn.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var Vn=require("react/jsx-runtime");function Ie(e){let t=ce(e.text);return t?(0,Vn.jsx)(On,{children:t}):null}var Ln=require("tailwind-merge"),ve=require("react/jsx-runtime");function Mn(e){let t=C(e.field)||p(e.field);return(0,ve.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,Ln.twMerge)("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&(0,ve.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var se=require("react/jsx-runtime");function _n(e){let t=O(e.field.label)?h(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=O(e.field.description)?h(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return(0,se.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,se.jsx)(Mn,{field:e.field,children:t}),e.orientation===H&&(0,se.jsx)(Ie,{text:n})]})}var V=require("react/jsx-runtime");function Un(e){return(0,V.jsxs)(V.Fragment,{children:[e.field.name&&e.field.label&&(0,V.jsx)(_n,{config:e.config,context:e.context,field:e.field,orientation:e.orientation}),e.children,e.orientation===I&&e.field.description&&(0,V.jsx)(Ie,{text:e.field.description})]})}var P=require("jotai"),je=require("jotai-family"),we=require("fast-equals");function zo(e){return(0,je.atomFamily)(t=>(0,P.atom)(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let l=i[t];(!l||!(0,we.deepEqual)(l,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:l,...a}=i;r(e,a)}}))}function jo(e){return(0,P.atom)(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function Jo(e){return(0,P.atom)(null,(t,n,r)=>{let i={...t(e)},l=!1;for(let a of r)i[a]&&(delete i[a],l=!0);l&&n(e,i)})}function Qo(e){return(0,P.atom)(null,(t,n,r)=>{let o=t(e);(0,we.deepEqual)(o,r)||n(e,r)})}function Bn(e,t={}){let{merge:n,validateTarget:r}=t;return(0,je.atomFamily)(o=>(0,P.atom)(i=>{let l=i(e)[o];if(l&&n)return n(Object.values(l))},(i,l,a,c)=>{if(r&&!r(a))return;let s=i(e),f={...s[a]??{}};if(c!=null){let y=f[o];(!y||!(0,we.deepEqual)(y,c))&&(f[o]=c,l(e,{...s,[a]:f}))}else if(f[o])if(delete f[o],Object.keys(f).length===0){let{[a]:y,...M}=s;l(e,M)}else l(e,{...s,[a]:f})}))}function Gn(e){return(0,P.atom)(null,(t,n,r)=>{let i={...t(e)},l=!1;for(let a of r)i[a]&&(delete i[a],l=!0);for(let a in i){let c={...i[a]},s=!1;for(let f of r)c[f]&&(delete c[f],s=!0,l=!0);s&&(Object.keys(c).length===0?delete i[a]:i[a]=c)}l&&n(e,i)})}function Z(e={}){let t=(0,P.atom)(e);return{atom:t,clearAll:jo(t),clear:Jo(t),bulkReport:Qo(t),report:zo(t)}}var Yn=Z(),Xn=Yn.atom,qn=Yn.report;function Pe(e,t){return e?t(e):null}var Je=Z(),Hn=Je.clear,$n=Je.bulkReport,Oe=Je.report;var F=require("react");var Zn=require("jotai");var ei=e=>{let t=Fn(e);if(t)return t},ti=e=>e.trim()!=="",Wn=(0,Zn.atom)({}),Kn=Bn(Wn,{merge:ei,validateTarget:ti}),zn=Gn(Wn);var Qn=require("jotai");var jn=oo(require("swr"),1);function Jn(e=null,t,n=!1){let{data:r,error:o}=(0,jn.default)(ni(e,t,n),t.fetcher.provider);if(o&&ie.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return Lt(r,e.namespace)}return null}function ni(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!O(e.url)){if(Cn(e.url,t.fetcher.remotePatterns))return e;ie.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function er(e,t,n){let r=nn(e,n),[o,i]=(0,Qn.useAtom)(Kn(e.name));return[Jn(o??r,t,e.disabled),i]}var L=require("react");function tr(e,t,n){let{name:r}=e,o=(0,L.useMemo)(()=>Tn(e),[e]),i=(0,L.useEffectEvent)(a=>{a&&t(a,o,e)}),l=(0,L.useEffectEvent)(a=>{a&&n(a)});return(0,L.useEffect)(()=>(i(r),()=>{l(r)}),[r]),o}var z=require("jotai");var W=require("react");function nr(){let e=(0,W.useRef)(null);(0,W.useEffect)(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return(0,W.useCallback)((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var De=Z(),rr=De.atom,or=De.clearAll,ir=De.clear,Ve=De.report;var lr=require("jotai"),K=require("react");function ar(e,t){let{name:n}=e,r=(0,K.useRef)(!1),[o,i]=(0,lr.useAtom)(Ve(n));(0,K.useEffect)(()=>{if(!t||!(n in t))return;let a=t[n];ae(a)&&(r.current=!0,i(a))},[n,t,i]);let l=(0,K.useCallback)(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:l,value:o}}var Qe=require("react/jsx-runtime");function cr(e){let t=e.field.advanced?.entity,n=(0,z.useStore)(),r=nr(),[,o]=(0,F.useTransition)(),{setValue:i,shouldSkipOnChange:l,value:a}=ar(e.field,e.value),c=jt(e.field),s=Ee(e.field),f=(0,z.useSetAtom)(rr),y=(0,z.useSetAtom)(Xn),M=(0,z.useSetAtom)(Oe(e.field.name)),Q=tr(e.field,e.onMount,e.onUnmount),[ee,de]=er(e.field,e.config,a),{commonPropsWithOptions:te,defaultValue:k}=rn(e.field,e.commonProps,ee,a),_=(0,F.useRef)(a);_.current=a;let b=on(e.field,k),fe=(0,F.useCallback)(m=>{let U=Q.safeParse(m).error?.issues.map(ne=>ne.message)??[],B=e.field.validation?.custom,Ue=B?An(m,B,ne=>n.get(Ve(ne))):[];M([...U,...Ue])},[M,Q,n,e.field.validation?.custom]),at=(0,F.useCallback)((m,x)=>{if(c){r(()=>{x({value:m})},500);return}let U=Vt(m,ee,t);x(U)},[ee,t,c,r]),Wr=(0,F.useCallback)(m=>{let x=m.target.value;if(l()&&(!c||x===_.current))return;i(x),e.config.validation.change&&fe(x);let U=e.field.event?.change;U&&at(x,B=>{Gt(U,({sources:Ue,states:ne,values:zr})=>{o(()=>{Yt(B,Ue,(G,Y)=>de(G,Y)),qt(B,ne,(G,Y)=>{y(me=>{if(Y)return{...me,[G]:Y};let{[G]:fi,...jr}=me;return jr})}),Ht(B,zr,(G,Y)=>{f(me=>({...me,[G]:Y}))})})})})},[at,c,e.config.validation.change,e.field.event?.change,y,de,i,f,l,fe]),Kr=(0,F.useCallback)(m=>{if(!s){let x=m.target.value;e.config.validation.blur&&fe(x)}},[s,e.config.validation.blur,fe]);return Pe(e.config.inputs[e.field.type],m=>(0,Qe.jsx)(Un,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,children:(0,Qe.jsx)(m,{...te,...e.ariaAttributes,...e.dataAttributes,...b,onBlur:Kr,onChange:Wr})}))}var et=require("react/jsx-runtime");function sr(e){return!e.errors||e.errors.length===0?null:(0,et.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,n)=>(0,et.jsx)("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var ur=require("tailwind-merge"),dr=require("react/jsx-runtime");function Le(e){let t=e.errors&&e.errors.length>0;return(0,dr.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Ft]:"true"},...e.disabled&&{[Nt]:"true"},"data-orientation":e.orientation,className:(0,ur.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",pn(e.cols),e.className),children:e.children})}var fr=require("tailwind-merge"),pr=require("react/jsx-runtime");function mr(e){return(0,pr.jsx)(Le,{...e,orientation:I,className:(0,fr.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var gr=require("tailwind-merge"),br=require("react/jsx-runtime");function yr(e){return(0,br.jsx)(Le,{...e,orientation:H,className:(0,gr.twMerge)("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}var tt=require("react/jsx-runtime");function xr(e){let t=Ee(e.field),n=p(e.field);return e.orientation===I?(0,tt.jsx)(mr,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):(0,tt.jsx)(yr,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var Me=We();function Tr(e){if(g(e))return ri(e)}function ri(e){if(Re(e))return gn();if(Ae(e)){let t=e.advanced?.length?.min??Me,n=e.advanced?.length?.max??Me+5;return yn(Ke(t,Me),Ke(n,Me))}}function hr(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return $e(e)?{...n,...oi(e)}:g(e)?{...n,...ii(e)}:Ze(e)?{...n,...li(e)}:n}function oi(e){let t=_t(e.type),n={...e,type:t};return{...Sr(e),...ai(n),...$t(n)?Rr(n):{},type:t}}function ii(e){let t=Tr(e);return t?{options:t}:{}}function li(e){return{...Sr(e),...Rr(e)}}function Sr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ai(e){return Ce(e)?ci(e):{}}function Rr(e){return Ar(e,{min:vt,max:wt})}function ci(e){return Ar(e,{min:be,max:xe})}function Ar(e,t){let n={},r=e.advanced?.length;return r&&(r.min!==void 0&&(n[t.min]=r.min),r.max!==void 0&&(n[t.max]=r.max)),n}function Cr(e,t){let n=sn(e.advanced?.aria);return t&&t.length>0&&(n[Et]="true",n[Ct]=`${e.name}-error`),n}function Er(e){return un(e.advanced?.data)}function Fr(e){if(!e.field.type)return null;let t=hr(e.field,e.disabled),n=Er(e.field),r=Cr(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:r,commonProps:t,dataAttributes:n,field:o,orientation:e.orientation})}var j=require("react/jsx-runtime");function Nr(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=ke(e.style,{orientation:Qt(e.field)}),o=en(e.field,e.disabled);return(0,j.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,j.jsx)(xr,{cols:t,disabled:o,errors:n,field:e.field,orientation:r,children:(0,j.jsx)(Fr,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),(0,j.jsx)(sr,{errors:n,name:e.field.name})]})}var kr=require("jotai"),vr=require("react/jsx-runtime");function Ir(e){return n=>{let r=(0,kr.useAtomValue)(Oe(n.field.name));return(0,vr.jsx)(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}var wr=require("jotai"),Or=require("react/jsx-runtime");function Pr(e){return n=>{let r=(0,wr.useAtomValue)(qn(n.field.name));if(r?.hidden??n.field.hidden??!1)return null;let i=r?.disabled??n.disabled;return(0,Or.jsx)(e,{...n,disabled:i})}}var Dr=Pr(Ir(Nr));var Vr=require("tailwind-merge"),nt=require("react/jsx-runtime");function Lr(e){let t=mn(e.column?.advanced?.cols);return(0,nt.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,nt.jsx)("div",{className:(0,Vr.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Mr=require("react"),J=require("react/jsx-runtime");function rt(e){let{column:t,field:n}=e.components;return Ne(e.fields).map((r,o)=>(0,J.jsxs)(Mr.Fragment,{children:[Wt(r)&&(0,J.jsx)(t,{column:r,children:(0,J.jsx)(rt,{...e,fields:r.fields})}),Kt(r)&&(0,J.jsx)(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}var Ur=require("react/jsx-runtime");function _r(e){return n=>(0,Ur.jsx)(rt,{...n,components:{column:Lr,field:e}})}var it=require("jotai");var ue=require("react");function Gr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},l=(0,it.useSetAtom)($n),a=(0,it.useSetAtom)(or),c={data:null,error:null,success:!1},[s,f,y]=(0,ue.useActionState)(async(M,Q)=>{let[ee,de]=e(),te=bn(ee,de);if(i===!1)return t?await t(Q,te):M;let k=Ut(Q),_=te.safeParse(k);if(!_.success){let b=xn(_.error);return(0,ue.startTransition)(()=>{l(b)}),ot(k,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let b=await t(k,te);return b.success?(r?.(b.data),o||(0,ue.startTransition)(()=>{a()}),Br(k,o)):ot(k,b.error)}catch(b){return ie.error("Error executing form action:",b),ot(k,{title:"An unexpected error occurred submitting the form.",details:si(b)})}return Br(_.data,o)},c);return[f,s,y]}function si(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Br(e,t=!1){return{data:t?e:null,error:null,success:!0}}function ot(e,t){return{data:e,error:t,success:!1}}var N=require("react");var Yr=require("react"),_e=require("jotai");function Xr(){let e=(0,_e.useSetAtom)(Hn),t=(0,_e.useSetAtom)(zn),n=(0,_e.useSetAtom)(ir);return(0,Yr.useCallback)(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function qr(){let e=Xr(),t=(0,N.useRef)({}),n=(0,N.useRef)([]),r=(0,N.useRef)(new Set),o=(0,N.useCallback)((a,c,s)=>{a in t.current||(t.current[a]=c,n.current.push(s))},[]),i=(0,N.useCallback)(a=>{t.current[a]&&(delete t.current[a],n.current=n.current.filter(c=>c.name!==a),r.current.add(a),(0,N.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function l(){return[t.current,n.current]}return[l,o,i]}var R=require("react/jsx-runtime"),ui=_r(Dr);function Hr(e){let[t,n,r]=qr(),[o,i,l]=Gr(t,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit}),a=e.config.validation.showError&&!i.success&&i.error,c=i.data??e.value;return(0,R.jsxs)(R.Fragment,{children:[a&&Pe(e.config.alert,s=>(0,R.jsx)("div",{className:"mb-4 w-full",children:(0,R.jsx)(s,{description:i.error?.description,details:i.error?.details,title:i.error.title})})),(0,R.jsx)(Pn,{action:o,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:s,fields:f})=>(0,R.jsx)(ui,{disabled:s,fields:f,style:e.config.style,children:y=>(0,R.jsx)(cr,{...y,config:e.config,context:e.context,onMount:n,onUnmount:r,value:c})})})]})}var $r=require("jotai"),lt=require("react/jsx-runtime");function Zr(e){return(0,lt.jsx)($r.Provider,{children:(0,lt.jsx)(Hr,{...e})})}
|
package/dist/client/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as yn}from"react/jsx-runtime";function Me(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return yn("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as bn}from"react/jsx-runtime";function B(e){return bn("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var Z="input",_e="input/email",Ue="input/number";var Be="textarea",Ge="radio",Xe="checkbox",Ye="select",qe="select/month",He="select/year";var ye="column";var $e="label",V="value",K="options",be="email",We="number",Ze="password",Ke="tel",G="text",ze="aria-errormessage",je="aria-invalid",Je="data-invalid",Qe="data-readonly",et="aria",tt="data",z="min",j="max",rt="minLength",nt="maxLength",D="$ref";var ot="source",it="state",J="http://luna.internal",E="vertical",L="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function Q(e){return e==null||e===""}function C(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function S(e){return typeof e=="string"}function lt(e){return c(e)&&"url"in e}var Tn=/[^/]+$/;function at(e,t=[],r=V){if(Array.isArray(t))return t.find(n=>{let o=Te(n,r);if(o!==void 0&&`${o}`===e)return n})??{value:e}}function Te(e,t=V){if(e!=null){if(C(e))return e;if(c(e)){let r=xn(e,t);if(C(r))return r}}}function xn(e,t){let r=T(e,t);if(C(r))return r}function ct(e,t){if(Array.isArray(e))return e;let r=T(e,t);return Array.isArray(r)?r:null}function T(e,t){if(!t||!c(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(c(n)&&o in n)n=n[o];else return null;return n}function st(e,t={label:$e,value:V}){return e.map(r=>{if(c(r)){let n=T(r,t.label),o=T(r,t.value);if(C(n)&&C(o))return{label:`${n}`,value:`${o}`}}return r})}function ut(e=G){if(e){let t=e.match(Tn);if(t){let[r]=t;if(r!==Z)return r.trim().toLowerCase()}}return G}function dt(e){let t={};for(let r of e.keys()){let n=e.getAll(r);t[r]=n.length>1?n:n[0]}return t}var hn=/\[([^\]]+)\]\(([^)]+)\)/g;function F(e,t={}){if(S(e))return Sn(e,t);if(Array.isArray(e))return e.map(r=>F(r,t));if(c(e)){let r={};for(let n in e)r[n]=F(e[n],t);return r}return e}function ee(e){return S(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>ee(t)):c(e)?Object.values(e).some(t=>ee(t)):!1}function Sn(e,t={}){return e.replace(/{([^}]+)}/g,(r,n)=>{let o=n.includes(".")?T(t,n):t[n];return C(o)?String(o):r})}function ft(e,t){if(!e||e.trim().length===0)return null;let r,n=0,o=!1,i=[];for(;(r=hn.exec(e))!==null;){let[l,a,f]=r,s=r.index;o=!0,s>n&&i.push(e.substring(n,s));let d=t?t(s,f,a):l;i.push(d),n=s+l.length}return o?(n<e.length&&i.push(e.substring(n)),i):e}var te=e=>x(qe)(e),re=e=>x(He)(e),m=x(Xe),xe=x(Z),A=x(Ge),p=x(Ye),he=x(Be),mt=x(G,be,Ze,Ke),pt=x(_e,be),ne=x(Ue,We);function oe(e){return A(e)||m(e)}function gt(e){return e.type===ye}function yt(e){return e.type!==ye}function bt(e){return p(e)||A(e)}function Tt(e){return xe(e)||he(e)}function X(e){return e!=null&&e!==""}function x(...e){return t=>{let r=S(t.type)?t.type:void 0;return r?e.some(n=>r===n||r?.startsWith(`${n}/`)):!1}}function xt(e,t={}){if(p(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function ie(e){return A(e)||m(e)?L:e.advanced?.orientation??E}function ht(e,t){let r=e.readonly??!1;return t||r}function St(e){if(A(e)||p(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(D in t))return t}}function At(e,t){let r=St(e);return r||xt(e,t)}function An(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return Te(r,e.advanced?.entity)}function Rn(e,t,r){return bt(e)&&Array.isArray(r)?{...t,[K]:r}:t}function En(e,t,r){if(e.required&&!X(r)&&p(e)&&e.advanced?.preselected!==!1&&K in t){let n=t[K];if(Array.isArray(n)&&n.length===1)return n[0]}return r}function Cn(e,t){return p(e)&&Array.isArray(t)?st(t,e.advanced?.options):t}function Rt(e,t,r,n){let o=An(e,n),i=Array.isArray(r)?Cn(e,r):r,l=Rn(e,t,i),a=En(e,l,o);return{commonPropsWithOptions:l,defaultValue:a}}function Et(e,t){return m(e)?{checked:X(t)?t:!1}:{value:t??""}}var Fn=/^#\/definition\//;function ae(e=[],t){let r=le(e,t);return Array.isArray(r)?r.sort((n,o)=>Ct(n)-Ct(o)):[]}function le(e,t,r=new Map,n=new WeakSet){if(!Nn(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(n.has(e))return e;if(n.add(e),Array.isArray(e))return e.map(i=>le(i,t,r,n));if(D in e&&S(e[D])){let i=e[D].replace(Fn,""),l=T(t,i);return l!==null?le(l,t,r,n):e}let o={};for(let[i,l]of Object.entries(e))o[i]=le(l,t,r,n);return n.delete(e),r.set(e,o),o}function Ft(e){return Object.entries(e??{})}function Ct(e){return e.order??Number.MAX_VALUE}function Nn(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function Nt(e,t){let r={};for(let[n,o]of Ft(t))r[`${e}-${n}`]=o;return r}function It(e){return Nt(et,e)}function vt(e){return Nt(tt,e)}var kt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Pt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function wt(e,t=2){return kt[e&&e in kt?e:t]}function Ot(e){if(e&&e in Pt)return Pt[e]}var In=/^\d+$/;function Vt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Dt(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 Se(){return new Date().getFullYear()}function Ae(e,t){if(typeof e=="number")return e;let r=t??Se(),n=e.trim().toLowerCase();if(n.startsWith("current")){let o=n.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return In.test(n)?parseInt(n,10):r}var Ce={error:(...e)=>{Re()&&Ee()},warn:(...e)=>{Re()&&Ee()},info:(...e)=>{Re()&&Ee()}};function Re(){return typeof console<"u"}function Ee(){return!0}import{z as u}from"zod";var vn=[[ne,Vn],[pt,kn],[re,Dn],[te,Ln],[m,Pn],[A,wn]];function Lt(e){return u.object(e)}function Mt(e){let t={},r=u.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function _t(e){for(let[t,r]of vn)if(t(e))return r(e);return On(e)}function kn(e){let t=u.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.email(e.validation?.email));return u.preprocess(n=>Q(n)?"":n,r)}return t.pipe(u.email(e.validation?.email)).or(u.literal("")).nullable()}function Pn(e){let t=u.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.preprocess(r=>r===null?!1:r,t)):t.nullable()}function wn(e){let t=u.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.preprocess(r=>Q(r)?"":r,t)):t.or(u.literal("")).nullable()}function On(e){let t=u.coerce.string().trim();return t=Ut(t,e),e.required?(t=Bt(t,e),u.preprocess(r=>Q(r)?"":r,t)):t.nullable()}function Vn(e){let t=u.coerce.number().int();return t=Ut(t,e),e.required?(t=Bt(t,e),u.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function Dn(e){if(e.required){let t=u.coerce.number({message:e.validation?.required}).int();return u.preprocess(Mn,t)}return u.coerce.number().int().nullable()}function Ln(e){let t=u.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Mn(e){return e===null||e===""?void 0:e}function Ut(e,t){return e=_n(e,t),e=Un(e,t),e}function Bt(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var _n=(e,t)=>Gt(e,t,z),Un=(e,t)=>Gt(e,t,j);function Gt(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}function Xt(e,t){if(!t||!Gn(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),n=r.protocol.replace(":",""),o=r.hostname,i=r.port||Bn(n);return t.some(l=>!(l.protocol&&l.protocol!==n||l.hostname&&l.hostname!==o||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function Bn(e){return e==="https"?"443":"80"}function Gn(e){return/^(https?:)?\/\//.test(e)}function Yt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,J);new URL(t,J).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let o=r.toString();return e.startsWith("/")||!e.includes("://")?o.replace(J,""):o}catch{return t||e}}function qt(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let n=Yt(t.url,r.url),o=Xn(t,r),i=Yn(t,r);return{...t,...r,url:n,body:o,headers:i}})}function Xn(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Yn(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function ce(e,t){return{...e,...t}}function Ht(e=[],t){let r=[],n=[],o=[];e.forEach(i=>{i.action===V&&r.push(i),i.action===ot&&n.push(i),i.action===it&&o.push(i)}),t({sources:n,states:o,values:r})}function $t(e=null,t=[],r){t.forEach(n=>{let{target:o,source:i}=n;if(!e){r(o,void 0);return}if(lt(i)){let l=F(i.url,e),a=i.body?F(i.body,e):i.body;r(o,{...i,url:l,body:a})}})}function Wt(e=null,t=[],r){t.forEach(n=>{let{target:o,state:i,when:l}=n;if(!e){r(o);return}let a=qn(e,l);r(o,a?i:void 0)})}function qn(e,t){if(t===void 0)return!0;if(S(t))return Fe(e,"value")===t;if(Array.isArray(t)){let r=Fe(e,"value");return t.includes(String(r))}return Hn(e,t)}function Hn(e=null,t){let r=Fe(e,t.field??"value"),{operator:n="eq",value:o}=t,i=$n[n];return i?i(r,o):!1}var $n={eq:Wn,neq:Zn,in:Kn,nin:zn};function Wn(e,t){return e===t}function Zn(e,t){return e!==t}function Kn(e,t){return Array.isArray(t)&&t.includes(String(e))}function zn(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Fe(e,t){return c(e)?t.includes(".")?T(e,t):e[t]:e}function Zt(e=null,t=[],r){t.forEach(n=>{Object.entries(n.value).forEach(([o,i])=>{r(o,e?F(i,e):void 0)})})}import{jsx as jn}from"react/jsx-runtime";function Y(e){return ft(e,(t,r,n)=>jn("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:n},`${r}-${t}`))}import{Fragment as Jn,jsx as Kt,jsxs as Qn}from"react/jsx-runtime";function zt(e){return Qn(Jn,{children:[e.title&&Kt("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:Y(e.title)}),e.description&&Kt("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:Y(e.description)})]})}import{jsx as Ne,jsxs as eo}from"react/jsx-runtime";function jt(e){let t=e.section.fields||[],{compact:r}=ce(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?Ne(B,{compact:r,children:e.children}):eo("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[Ne(zt,{description:e.section.description,title:e.section.title}),Ne(B,{compact:r,children:e.children})]})}import{Fragment as to}from"react";import{jsx as Jt}from"react/jsx-runtime";function Qt(){return Jt("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:Jt("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as q,jsxs as er}from"react/jsx-runtime";function tr(e){let t=ae(e.sections,e.definition);return q("div",{className:"h-full w-full",children:q("form",{noValidate:e.noValidate,action:e.action,children:er(B,{children:[t.map((r,n)=>er(to,{children:[q(jt,{section:r,style:e.config.style,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&q(Qt,{})]},n)),e.control&&q(Me,{isPending:e.isPending,children:e.control})]})})})}import{jsx as ro}from"react/jsx-runtime";function rr(e){return ro("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as no}from"react/jsx-runtime";function se(e){let t=Y(e.text);return t?no(rr,{children:t}):null}import{twMerge as oo}from"tailwind-merge";import{jsx as io,jsxs as lo}from"react/jsx-runtime";function nr(e){let t=A(e.field)||m(e.field);return lo("label",{"data-slot":"field-label","data-normal":t,className:oo("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&io("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as or,jsxs as ao}from"react/jsx-runtime";function ir(e){return ao("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[or(nr,{field:e.field,children:e.field.label}),e.orientation===L&&or(se,{text:e.field.description})]})}import{Fragment as co,jsx as lr,jsxs as so}from"react/jsx-runtime";function ar(e){let t=ie(e.field);return so(co,{children:[e.field.name&&e.field.label&&lr(ir,{field:e.field,orientation:t}),e.children,t===E&&e.field.description&&lr(se,{text:e.field.description})]})}import{atom as N}from"jotai";import{atomFamily as cr}from"jotai-family";import{deepEqual as Ie}from"fast-equals";function uo(e){return cr(t=>N(r=>r(e)[t]??void 0,(r,n,o)=>{let i=r(e);if(o!=null){let l=i[t];(!l||!Ie(l,o))&&n(e,{...i,[t]:o})}else if(i[t]){let{[t]:l,...a}=i;n(e,a)}}))}function fo(e){return N(null,(t,r)=>{let n=t(e);n&&Object.keys(n).length>0&&r(e,{})})}function mo(e){return N(null,(t,r,n)=>{let i={...t(e)},l=!1;for(let a of n)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function po(e){return N(null,(t,r,n)=>{let o=t(e);Ie(o,n)||r(e,n)})}function sr(e,t={}){let{merge:r,validateTarget:n}=t;return cr(o=>N(i=>{let l=i(e)[o];if(l&&r)return r(Object.values(l))},(i,l,a,f)=>{if(n&&!n(a))return;let s=i(e),d={...s[a]??{}};if(f!=null){let g=d[o];(!g||!Ie(g,f))&&(d[o]=f,l(e,{...s,[a]:d}))}else if(d[o])if(delete d[o],Object.keys(d).length===0){let{[a]:g,...I}=s;l(e,I)}else l(e,{...s,[a]:d})}))}function ur(e){return N(null,(t,r,n)=>{let i={...t(e)},l=!1;for(let a of n)i[a]&&(delete i[a],l=!0);for(let a in i){let f={...i[a]},s=!1;for(let d of n)f[d]&&(delete f[d],s=!0,l=!0);s&&(Object.keys(f).length===0?delete i[a]:i[a]=f)}l&&r(e,i)})}function M(e={}){let t=N(e);return{atom:t,clearAll:fo(t),clear:mo(t),bulkReport:po(t),report:uo(t)}}var dr=M(),fr=dr.atom,mr=dr.report;function ue(e,t){return e?t(e):null}var ve=M(),pr=ve.clear,gr=ve.bulkReport,de=ve.report;import{useCallback as me,useTransition as No}from"react";import{atom as go}from"jotai";var yr=go({}),br=sr(yr,{merge:e=>{let t=qt(e);if(t)return t},validateTarget:e=>e.trim()!==""}),Tr=ur(yr);import{useAtom as To}from"jotai";import yo from"swr";function xr(e=null,t,r=!1){let{data:n,error:o}=yo(bo(e,t,r),t.fetcher.provider);if(o&&Ce.error("Error fetching data source:",o),e){if(Array.isArray(e))return[e];if(n)return[ct(n,e.namespace)]}return[null]}function bo(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!ee(e.url)){if(Xt(e.url,t.fetcher.remotePatterns))return e;Ce.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function hr(e,t,r){let n=At(e,r),[o,i]=To(br(e.name)),l=o??n,[a]=xr(l,t,e.disabled);return[a,i]}import{useEffect as xo,useEffectEvent as Sr,useMemo as ho}from"react";function Ar(e,t,r){let{name:n}=e,o=ho(()=>_t(e),[e]),i=Sr(a=>{a&&t(a,o)}),l=Sr(a=>{a&&r(a)});return xo(()=>(i(n),()=>{l(n)}),[n]),[o]}import{useSetAtom as ke}from"jotai";import{useEffect as So,useRef as Ao}from"react";function Rr(){let e=Ao(null);So(()=>{let n=e.current;return()=>{n&&clearTimeout(n)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(n,o){t(),e.current=setTimeout(n,o)}return[r,t]}var fe=M(),Er=fe.atom,Cr=fe.clearAll,Fr=fe.clear,Nr=fe.report;import{useAtom as Ro}from"jotai";import{useCallback as Eo,useEffect as Co,useRef as Fo}from"react";function Ir(e,t){let{name:r}=e,n=Fo(!1),[o,i]=Ro(Nr(r));Co(()=>{if(!t||!(r in t))return;let a=t[r];X(a)&&(n.current=!0,i(a))},[r,t,i]);let l=Eo(()=>n.current?(n.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:l,value:o}}import{jsx as vr}from"react/jsx-runtime";function kr(e){let t=e.field.advanced?.entity,[r]=Rr(),[,n]=No(),{setValue:o,shouldSkipOnChange:i,value:l}=Ir(e.field,e.value),a=Tt(e.field),f=oe(e.field),s=ke(Er),d=ke(fr),g=ke(de(e.field.name)),[I]=Ar(e.field,e.onMount,e.onUnmount),[v,k]=hr(e.field,e.config,l),{commonPropsWithOptions:R,defaultValue:_}=Rt(e.field,e.commonProps,v,l),h=Et(e.field,_),$=me(y=>{let P=I.safeParse(y).error?.issues.map(U=>U.message)??[];g(P)},[g,I]),Le=me((y,b)=>{if(a){r(()=>{b({value:y})},500);return}let P=at(y,v,t);b(P)},[v,t,a,r]),un=me(y=>{let b=y.target.value;if(i()&&(!a||b===l))return;o(b),e.config.validation.change&&$(b);let P=e.field.event?.change;P&&Le(b,U=>{Ht(P,({sources:fn,states:mn,values:pn})=>{n(()=>{$t(U,fn,(w,O)=>k(w,O)),Wt(U,mn,(w,O)=>{d(W=>{if(O)return{...W,[w]:O};let{[w]:ni,...gn}=W;return gn})}),Zt(U,pn,(w,O)=>{s(W=>({...W,[w]:O}))})})})})},[Le,a,e.config.validation.change,e.field.event?.change,d,k,o,s,i,$,l]),dn=me(y=>{if(!f){let b=y.target.value;e.config.validation.blur&&$(b)}},[f,e.config.validation.blur,$]);return ue(e.config.inputs[e.field.type],y=>vr(ar,{field:e.field,children:vr(y,{...R,...e.ariaAttributes,...e.dataAttributes,...h,onBlur:dn,onChange:un})}))}import{jsx as Pr}from"react/jsx-runtime";function wr(e){return!e.errors||e.errors.length===0?null:Pr("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)=>Pr("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{twMerge as Io}from"tailwind-merge";import{jsx as vo}from"react/jsx-runtime";function pe(e){let t=e.errors&&e.errors.length>0;return vo("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Je]:"true"},...e.disabled&&{[Qe]:"true"},"data-orientation":e.orientation,className:Io("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",Ot(e.cols),e.className),children:e.children})}import{twMerge as ko}from"tailwind-merge";import{jsx as Po}from"react/jsx-runtime";function Or(e){return Po(pe,{...e,orientation:E,className:ko("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}import{twMerge as wo}from"tailwind-merge";import{jsx as Oo}from"react/jsx-runtime";function Vr(e){return Oo(pe,{...e,orientation:L,className:wo("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}import{jsx as Dr}from"react/jsx-runtime";function Lr(e){let t=oe(e.field),r=m(e.field);return e.orientation===E?Dr(Or,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:r,isClickable:t,children:e.children}):Dr(Vr,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:r,isClickable:t,children:e.children})}var ge=Se();function Mr(e){if(p(e))return Vo(e)}function Vo(e){if(te(e))return Vt();if(re(e)){let t=e.advanced?.length?.min??ge,r=e.advanced?.length?.max??ge+5;return Dt(Ae(t,ge),Ae(r,ge))}}function _r(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return xe(e)?{...r,...Do(e)}:p(e)?{...r,...Lo(e)}:he(e)?{...r,...Mo(e)}:r}function Do(e){let t=ut(e.type),r={...e,type:t};return{...Ur(e),..._o(r),...mt(r)?Br(r):{},type:t}}function Lo(e){let t=Mr(e);return t?{options:t}:{}}function Mo(e){return{...Ur(e),...Br(e)}}function Ur(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function _o(e){return ne(e)?Uo(e):{}}function Br(e){return Gr(e,{min:rt,max:nt})}function Uo(e){return Gr(e,{min:z,max:j})}function Gr(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 Xr(e,t){let r=It(e.advanced?.aria);return t&&t.length>0&&(r[je]="true",r[ze]=`${e.name}-error`),r}function Yr(e){return vt(e.advanced?.data)}function qr(e){if(!e.field.type)return null;let t=_r(e.field,e.disabled),r=Yr(e.field),n=Xr(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o})}import{jsx as Pe,jsxs as Bo}from"react/jsx-runtime";function Hr(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:n}=ce(e.style,{orientation:ie(e.field)}),o=ht(e.field,e.disabled);return Bo("div",{className:"flex flex-col gap-3",children:[Pe(Lr,{cols:t,disabled:o,errors:r,field:e.field,orientation:n,children:Pe(qr,{disabled:o,errors:r,field:e.field,children:e.children})}),Pe(wr,{errors:r,name:e.field.name})]})}import{useAtomValue as Go}from"jotai";import{jsx as Xo}from"react/jsx-runtime";function $r(e){return r=>{let n=Go(de(r.field.name));return Xo(e,{...r,errors:n?{[r.field.name]:n}:void 0})}}import{useAtomValue as Yo}from"jotai";import{jsx as qo}from"react/jsx-runtime";function Wr(e){return r=>{let n=Yo(mr(r.field.name));if(n?.hidden??r.field.hidden??!1)return null;let i=n?.disabled??r.disabled;return qo(e,{...r,disabled:i})}}var Zr=Wr($r(Hr));import{twMerge as Ho}from"tailwind-merge";import{jsx as Kr}from"react/jsx-runtime";function zr(e){let t=wt(e.column?.advanced?.cols);return Kr("div",{className:"flex w-full flex-col gap-4",children:Kr("div",{className:Ho("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{Fragment as $o}from"react";import{jsx as we,jsxs as Wo}from"react/jsx-runtime";function Oe(e){let{column:t,field:r}=e.components;return ae(e.fields).map((n,o)=>Wo($o,{children:[gt(n)&&we(t,{column:n,children:we(Oe,{...e,fields:n.fields})}),yt(n)&&we(r,{disabled:e.disabled,field:n,style:e.style,children:e.children})]},o))}import{jsx as Zo}from"react/jsx-runtime";function jr(e){return r=>Zo(Oe,{...r,components:{column:zr,field:e}})}var Jr=jr(Zr);import{useSetAtom as Qr}from"jotai";import{startTransition as en,useActionState as Ko}from"react";function rn(e,t,r){let{onSuccess:n,preserveValues:o=!1,validation:i=!0}=r??{},l=Qr(gr),a=Qr(Cr),f={data:null,error:null,success:!1},[s,d,g]=Ko(async(I,v)=>{let k=Lt(e());if(i===!1)return t?await t(v,k):I;let R=dt(v),_=k.safeParse(R);if(!_.success){let h=Mt(_.error);return en(()=>{l(h)}),Ve(R,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let h=await t(R,k);return h.success?(n?.(h.data),o||en(()=>{a()}),tn(R,o)):Ve(R,h.error)}catch(h){return Ve(R,{title:"An unexpected error occurred submitting the form.",details:zo(h)})}return tn(_.data,o)},f);return[d,s,g]}function zo(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function tn(e,t=!1){return{data:t?e:null,error:null,success:!0}}function Ve(e,t){return{data:e,error:t,success:!1}}import{startTransition as Jo,useCallback as on,useRef as ln}from"react";import{useCallback as jo}from"react";import{useSetAtom as De}from"jotai";function nn(){let e=De(pr),t=De(Tr),r=De(Fr);return jo(n=>{let o=Array.isArray(n)?n:[n];e(o),t(o),r(o)},[e,t,r])}function an(){let e=nn(),t=ln({}),r=ln(new Set),n=on((l,a)=>{l in t.current||(t.current[l]=a)},[]),o=on(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),Jo(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,n,o]}import{Fragment as Qo,jsx as H,jsxs as ei}from"react/jsx-runtime";function cn(e){let[t,r,n]=an(),[o,i,l]=rn(t,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit}),a=e.config.validation.showError&&!i.success&&i.error,f=i.data??e.value;return ei(Qo,{children:[a&&ue(e.config.alert,s=>H("div",{className:"mb-4 w-full",children:H(s,{description:i.error?.description,details:i.error?.details,title:i.error.title})})),H(tr,{action:o,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:s,fields:d})=>H(Jr,{disabled:s,fields:d,style:e.config.style,children:g=>H(kr,{...g,config:e.config,onMount:r,onUnmount:n,value:f})})})]})}import{Provider as ti}from"jotai";import{jsx as sn}from"react/jsx-runtime";function ri(e){return sn(ti,{children:sn(cn,{...e})})}export{ri as Form};
|
|
1
|
+
import{jsx as Rr}from"react/jsx-runtime";function He(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return Rr("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as Ar}from"react/jsx-runtime";function q(e){return Ar("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var te="input",$e="input/email",Ze="input/number";var We="textarea",Ke="radio",ze="checkbox",je="select",Je="select/month",Qe="select/year";var Ce="column";var et="label",L="value",ne="options",Ee="email",tt="number",nt="password",rt="tel",H="text",ot="aria-errormessage",it="aria-invalid",lt="data-invalid",at="data-readonly",ct="aria",st="data",re="min",oe="max",ut="minLength",dt="maxLength",M="$ref";var ft="source",mt="state",ie="http://luna.internal",E="vertical",_="horizontal";function u(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function le(e){return e==null||e===""}function F(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function R(e){return typeof e=="string"}function pt(e){return u(e)&&"url"in e}var Cr=/[^/]+$/;function gt(e,t=[],n=L){if(Array.isArray(t))return t.find(r=>{let o=Fe(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function Fe(e,t=L){if(e!=null){if(F(e))return e;if(u(e)){let n=Er(e,t);if(F(n))return n}}}function Er(e,t){let n=T(e,t);if(F(n))return n}function yt(e,t){if(Array.isArray(e))return e;let n=T(e,t);return Array.isArray(n)?n:null}function T(e,t){if(!t||!u(e))return null;let n=t.split(".").filter(o=>o!=="");if(n.length===0)return null;let r=e;for(let o of n)if(u(r)&&o in r)r=r[o];else return null;return r}function bt(e,t={label:et,value:L}){return e.map(n=>{if(u(n)){let r=T(n,t.label),o=T(n,t.value);if(F(r)&&F(o))return{label:`${r}`,value:`${o}`}}return n})}function xt(e=H){if(e){let t=e.match(Cr);if(t){let[n]=t;if(n!==te)return n.trim().toLowerCase()}}return H}function Tt(e){let t={};for(let n of e.keys()){let r=e.getAll(n);t[n]=r.length>1?r:r[0]}return t}var Fr=/\[([^\]]+)\]\(([^)]+)\)/g;function h(e,t={}){if(R(e))return Nr(e,t);if(Array.isArray(e))return e.map(n=>h(n,t));if(u(e)){let n={};for(let r in e)n[r]=h(e[r],t);return n}return e}function k(e){return R(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>k(t)):u(e)?Object.values(e).some(t=>k(t)):!1}function Nr(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?T(t,r):t[r];return F(o)?String(o):n})}function ht(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=Fr.exec(e))!==null;){let[l,a,c]=n,s=n.index;o=!0,s>r&&i.push(e.substring(r,s));let f=t?t(s,c,a):l;i.push(f),r=s+l.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var $={error:(...e)=>{Ne()&&!ke()&&ae().error("[Luna Form]",...e)},warn:(...e)=>{Ne()&&!ke()&&ae().warn("[Luna Form]",...e)},info:(...e)=>{Ne()&&!ke()&&ae().info("[Luna Form]",...e)}},Ne=()=>typeof ae()<"u",ke=()=>!0,ae=()=>globalThis.console;function St(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===L&&n.push(i),i.action===ft&&r.push(i),i.action===mt&&o.push(i)}),t({sources:r,states:o,values:n})}function Rt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(pt(i)){let l=h(i.url,e),a=i.body?h(i.body,e):i.body;n(o,{...i,url:l,body:a})}})}var Z={eq:Pr,gt:Lr,gte:Mr,in:Dr,lt:_r,lte:Ur,neq:Or,nin:Vr},kr=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,At=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function Ir(e){return typeof e=="string"&&kr.test(e)}function vr(e){return typeof e=="string"&&At.test(e)}function wr(e){let t=e.match(At);if(t){let[,n,r,o,i,l,a]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(l??0),Number(a??0)).getTime()}return NaN}function N(e){return Ir(e)?new Date(e).getTime():vr(e)?wr(e):Number(e)}function Pr(e,t){return e===t}function Or(e,t){return e!==t}function Dr(e,t){return Array.isArray(t)&&t.includes(String(e))}function Vr(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Lr(e,t){return N(e)>N(t)}function Mr(e,t){return N(e)>=N(t)}function _r(e,t){return N(e)<N(t)}function Ur(e,t){return N(e)<=N(t)}function Ct(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:l}=r;if(!e){n(o);return}let a=Br(e,l);n(o,a?i:void 0)})}function Br(e,t){if(t===void 0)return!0;if(R(t))return Ie(e,"value")===t;if(Array.isArray(t)){let n=Ie(e,"value");return t.includes(String(n))}return Gr(e,t)}function Gr(e=null,t){let n=Ie(e,t.field??"value"),{operator:r="eq",value:o}=t,i=Z[r];return i?i(n,o):!1}function Ie(e,t){return u(e)?t.includes(".")?T(e,t):e[t]:e}function Et(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?h(i,e):void 0)})})}var ce=e=>S(Je)(e),se=e=>S(Qe)(e),p=S(ze),ve=S(te),A=S(Ke),g=S(je),we=S(We),Ft=S(H,Ee,nt,rt),Nt=S($e,Ee),ue=S(Ze,tt);function de(e){return A(e)||p(e)}function kt(e){return e.type===Ce}function It(e){return e.type!==Ce}function vt(e){return g(e)||A(e)}function wt(e){return ve(e)||we(e)}function W(e){return e!=null&&e!==""}function S(...e){return t=>{let n=R(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Pt(e,t={}){if(g(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&u(n))return[n]}}function Ot(e){return A(e)||p(e)?_:e.advanced?.orientation??E}function Dt(e,t){let n=e.readonly??!1;return t||n}function Vt(e){if(A(e)||g(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||u(t)&&!(M in t))return t}}function Lt(e,t){let n=Vt(e);return n||Pt(e,t)}function Yr(e,t){let n=u(t)&&e.name in t?t[e.name]:t;return Fe(n,e.advanced?.entity)}function Xr(e,t,n){return vt(e)&&Array.isArray(n)?{...t,[ne]:n}:t}function qr(e,t,n){if(e.required&&!W(n)&&g(e)&&e.advanced?.preselected!==!1&&ne in t){let r=t[ne];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function Hr(e,t){return g(e)&&Array.isArray(t)?bt(t,e.advanced?.options):t}function Mt(e,t,n,r){let o=Yr(e,r),i=Array.isArray(n)?Hr(e,n):n,l=Xr(e,t,i),a=qr(e,l,o);return{commonPropsWithOptions:l,defaultValue:a}}function _t(e,t){return p(e)?{checked:W(t)?t:!1}:{value:t??""}}var $r=/^#\/definition\//;function me(e=[],t){let n=fe(e,t);return Array.isArray(n)?n.sort((r,o)=>Ut(r)-Ut(o)):[]}function fe(e,t,n=new Map,r=new WeakSet){if(!Zr(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(r.has(e))return e;if(r.add(e),Array.isArray(e))return e.map(i=>fe(i,t,n,r));if(M in e&&R(e[M])){let i=e[M].replace($r,""),l=T(t,i);return l!==null?fe(l,t,n,r):e}let o={};for(let[i,l]of Object.entries(e))o[i]=fe(l,t,n,r);return r.delete(e),n.set(e,o),o}function Bt(e){return Object.entries(e??{})}function Ut(e){return e.order??Number.MAX_VALUE}function Zr(e){return e!==void 0&&u(e)&&Object.keys(e).length>0}function Gt(e,t){let n={};for(let[r,o]of Bt(t))n[`${e}-${r}`]=o;return n}function Yt(e){return Gt(ct,e)}function Xt(e){return Gt(st,e)}var qt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Ht={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function $t(e,t=2){return qt[e&&e in qt?e:t]}function Zt(e){if(e&&e in Ht)return Ht[e]}var Wr=/^\d+$/;function Wt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Kt(e,t){return t>=e?Array.from({length:t-e+1},(n,r)=>{let o=e+r;return{value:o.toString(),label:o.toString()}}):[]}function Pe(){return new Date().getFullYear()}function Oe(e,t){if(typeof e=="number")return e;let n=t??Pe(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,a=parseInt(l,10);if(!isNaN(a))return i==="+"?n+a:n-a}return n}return Wr.test(r)?parseInt(r,10):n}import{z as d}from"zod";var Kr=[[ue,eo],[Nt,zr],[se,to],[ce,no],[p,jr],[A,Jr]];function zt(e,t=[]){let n=d.object(e);return t.length===0?n:lo(n,t)}function jt(e){let t={},n=d.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function Jt(e){for(let[t,n]of Kr)if(t(e))return n(e);return Qr(e)}function zr(e){let t=d.string().trim();if(e.required){let n=t.min(1,e.validation?.required).pipe(d.email(e.validation?.email));return d.preprocess(r=>le(r)?"":r,n)}return t.pipe(d.email(e.validation?.email)).or(d.literal("")).nullable()}function jr(e){let t=d.coerce.boolean();return e.required?(t=t.refine(n=>n===!0,{message:e.validation?.required}),d.preprocess(n=>n===null?!1:n,t)):t.nullable()}function Jr(e){let t=d.coerce.string();return e.required?(t=t.min(1,e.validation?.required),d.preprocess(n=>le(n)?"":n,t)):t.or(d.literal("")).nullable()}function Qr(e){let t=d.coerce.string().trim();return t=Qt(t,e),e.required?(t=en(t,e),d.preprocess(n=>le(n)?"":n,t)):t.nullable()}function eo(e){let t=d.coerce.number().int();return t=Qt(t,e),e.required?(t=en(t,e),d.preprocess(n=>n===null?void 0:n,t)):t.nullable()}function to(e){if(e.required){let t=d.coerce.number({message:e.validation?.required}).int();return d.preprocess(ro,t)}return d.coerce.number().int().nullable()}function no(e){let t=d.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function ro(e){return e===null||e===""?void 0:e}function Qt(e,t){return e=oo(e,t),e=io(e,t),e}function en(e,t){let n=t.advanced?.length?.min;return n===void 0||n<1?e.min(1,t.validation?.required):e}var oo=(e,t)=>tn(e,t,re),io=(e,t)=>tn(e,t,oe);function tn(e,t,n){let r=t.advanced?.length?.[n];return r!==void 0?e[n](r,t.validation?.length?.[n]):e}function lo(e,t=[]){let n=co(t);return n.length===0?e:e.superRefine((r,o)=>{for(let{name:i,rule:l}of n)ao(r,i,l)||o.addIssue({code:"custom",message:l.message,path:[i]})})}function ao(e,t,n){let r=n.operator??"eq",o=Z[r];return o?o(e[t],e[n.field]):!1}function co(e){let t=[];for(let n of e){let r=n.validation?.custom;if(!r)continue;let o=Array.isArray(r)?r:[r];for(let i of o)t.push({name:n.name,rule:i})}return t}function nn(e,t,n){let r=[],o=Array.isArray(t)?t:[t];for(let i of o){let l=i.operator??"eq",a=Z[l];a&&!a(e,n(i.field))&&i.message&&r.push(i.message)}return r}function rn(e,t){if(!t||!uo(e))return!0;if(t.length===0)return!1;try{let n=new URL(e),r=n.protocol.replace(":",""),o=n.hostname,i=n.port||so(r);return t.some(l=>!(l.protocol&&l.protocol!==r||l.hostname&&l.hostname!==o||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function so(e){return e==="https"?"443":"80"}function uo(e){return/^(https?:)?\/\//.test(e)}function on(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,ie);new URL(t,ie).searchParams.forEach((i,l)=>{n.searchParams.set(l,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(ie,""):o}catch{return t||e}}function ln(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=on(t.url,n.url),o=fo(t,n),i=mo(t,n);return{...t,...n,url:r,body:o,headers:i}})}function fo(e,t){return u(t.body)&&u(e?.body)?{...e.body,...t.body}:t.body??e?.body}function mo(e,t){return u(t.headers)&&u(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function pe(e,t){return{...e,...t}}import{jsx as po}from"react/jsx-runtime";function K(e){return ht(e,(t,n,r)=>po("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}import{Fragment as go,jsx as an,jsxs as yo}from"react/jsx-runtime";function cn(e){return yo(go,{children:[e.title&&an("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:K(e.title)}),e.description&&an("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:K(e.description)})]})}import{jsx as De,jsxs as bo}from"react/jsx-runtime";function sn(e){let t=e.section.fields||[],{compact:n}=pe(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?De(q,{compact:n,children:e.children}):bo("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[De(cn,{description:e.section.description,title:e.section.title}),De(q,{compact:n,children:e.children})]})}import{Fragment as xo}from"react";import{jsx as un}from"react/jsx-runtime";function dn(){return un("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:un("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as z,jsxs as fn}from"react/jsx-runtime";function mn(e){let t=me(e.sections,e.definition);return z("div",{className:"h-full w-full",children:z("form",{noValidate:e.noValidate,action:e.action,children:fn(q,{children:[t.map((n,r)=>fn(xo,{children:[z(sn,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&z(dn,{})]},r)),e.control&&z(He,{isPending:e.isPending,children:e.control})]})})})}import{jsx as To}from"react/jsx-runtime";function pn(e){return To("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as ho}from"react/jsx-runtime";function ge(e){let t=K(e.text);return t?ho(pn,{children:t}):null}import{twMerge as So}from"tailwind-merge";import{jsx as Ro,jsxs as Ao}from"react/jsx-runtime";function gn(e){let t=A(e.field)||p(e.field);return Ao("label",{"data-slot":"field-label","data-normal":t,className:So("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&Ro("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as yn,jsxs as Co}from"react/jsx-runtime";function bn(e){let t=k(e.field.label)?h(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=k(e.field.description)?h(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return Co("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[yn(gn,{field:e.field,children:t}),e.orientation===_&&yn(ge,{text:n})]})}import{Fragment as Eo,jsx as xn,jsxs as Fo}from"react/jsx-runtime";function Tn(e){return Fo(Eo,{children:[e.field.name&&e.field.label&&xn(bn,{config:e.config,context:e.context,field:e.field,orientation:e.orientation}),e.children,e.orientation===E&&e.field.description&&xn(ge,{text:e.field.description})]})}import{atom as I}from"jotai";import{atomFamily as hn}from"jotai-family";import{deepEqual as Ve}from"fast-equals";function No(e){return hn(t=>I(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let l=i[t];(!l||!Ve(l,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:l,...a}=i;r(e,a)}}))}function ko(e){return I(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function Io(e){return I(null,(t,n,r)=>{let i={...t(e)},l=!1;for(let a of r)i[a]&&(delete i[a],l=!0);l&&n(e,i)})}function vo(e){return I(null,(t,n,r)=>{let o=t(e);Ve(o,r)||n(e,r)})}function Sn(e,t={}){let{merge:n,validateTarget:r}=t;return hn(o=>I(i=>{let l=i(e)[o];if(l&&n)return n(Object.values(l))},(i,l,a,c)=>{if(r&&!r(a))return;let s=i(e),f={...s[a]??{}};if(c!=null){let y=f[o];(!y||!Ve(y,c))&&(f[o]=c,l(e,{...s,[a]:f}))}else if(f[o])if(delete f[o],Object.keys(f).length===0){let{[a]:y,...v}=s;l(e,v)}else l(e,{...s,[a]:f})}))}function Rn(e){return I(null,(t,n,r)=>{let i={...t(e)},l=!1;for(let a of r)i[a]&&(delete i[a],l=!0);for(let a in i){let c={...i[a]},s=!1;for(let f of r)c[f]&&(delete c[f],s=!0,l=!0);s&&(Object.keys(c).length===0?delete i[a]:i[a]=c)}l&&n(e,i)})}function U(e={}){let t=I(e);return{atom:t,clearAll:ko(t),clear:Io(t),bulkReport:vo(t),report:No(t)}}var An=U(),Cn=An.atom,En=An.report;function ye(e,t){return e?t(e):null}var Le=U(),Fn=Le.clear,Nn=Le.bulkReport,be=Le.report;import{useCallback as he,useRef as $o,useTransition as Zo}from"react";import{atom as wo}from"jotai";var Po=e=>{let t=ln(e);if(t)return t},Oo=e=>e.trim()!=="",kn=wo({}),In=Sn(kn,{merge:Po,validateTarget:Oo}),vn=Rn(kn);import{useAtom as Lo}from"jotai";import Do from"swr";function wn(e=null,t,n=!1){let{data:r,error:o}=Do(Vo(e,t,n),t.fetcher.provider);if(o&&$.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return yt(r,e.namespace)}return null}function Vo(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!k(e.url)){if(rn(e.url,t.fetcher.remotePatterns))return e;$.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Pn(e,t,n){let r=Lt(e,n),[o,i]=Lo(In(e.name));return[wn(o??r,t,e.disabled),i]}import{useEffect as Mo,useEffectEvent as On,useMemo as _o}from"react";function Dn(e,t,n){let{name:r}=e,o=_o(()=>Jt(e),[e]),i=On(a=>{a&&t(a,o,e)}),l=On(a=>{a&&n(a)});return Mo(()=>(i(r),()=>{l(r)}),[r]),o}import{useSetAtom as Me,useStore as Wo}from"jotai";import{useCallback as Uo,useEffect as Bo,useRef as Go}from"react";function Vn(){let e=Go(null);Bo(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return Uo((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var xe=U(),Ln=xe.atom,Mn=xe.clearAll,_n=xe.clear,Te=xe.report;import{useAtom as Yo}from"jotai";import{useCallback as Xo,useEffect as qo,useRef as Ho}from"react";function Un(e,t){let{name:n}=e,r=Ho(!1),[o,i]=Yo(Te(n));qo(()=>{if(!t||!(n in t))return;let a=t[n];W(a)&&(r.current=!0,i(a))},[n,t,i]);let l=Xo(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:l,value:o}}import{jsx as Bn}from"react/jsx-runtime";function Gn(e){let t=e.field.advanced?.entity,n=Wo(),r=Vn(),[,o]=Zo(),{setValue:i,shouldSkipOnChange:l,value:a}=Un(e.field,e.value),c=wt(e.field),s=de(e.field),f=Me(Ln),y=Me(Cn),v=Me(be(e.field.name)),B=Dn(e.field,e.onMount,e.onUnmount),[G,J]=Pn(e.field,e.config,a),{commonPropsWithOptions:Y,defaultValue:C}=Mt(e.field,e.commonProps,G,a),w=$o(a);w.current=a;let b=_t(e.field,C),Q=he(m=>{let P=B.safeParse(m).error?.issues.map(X=>X.message)??[],O=e.field.validation?.custom,Ae=O?nn(m,O,X=>n.get(Te(X))):[];v([...P,...Ae])},[v,B,n,e.field.validation?.custom]),qe=he((m,x)=>{if(c){r(()=>{x({value:m})},500);return}let P=gt(m,G,t);x(P)},[G,t,c,r]),xr=he(m=>{let x=m.target.value;if(l()&&(!c||x===w.current))return;i(x),e.config.validation.change&&Q(x);let P=e.field.event?.change;P&&qe(x,O=>{St(P,({sources:Ae,states:X,values:hr})=>{o(()=>{Rt(O,Ae,(D,V)=>J(D,V)),Ct(O,X,(D,V)=>{y(ee=>{if(V)return{...ee,[D]:V};let{[D]:Ei,...Sr}=ee;return Sr})}),Et(O,hr,(D,V)=>{f(ee=>({...ee,[D]:V}))})})})})},[qe,c,e.config.validation.change,e.field.event?.change,y,J,i,f,l,Q]),Tr=he(m=>{if(!s){let x=m.target.value;e.config.validation.blur&&Q(x)}},[s,e.config.validation.blur,Q]);return ye(e.config.inputs[e.field.type],m=>Bn(Tn,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,children:Bn(m,{...Y,...e.ariaAttributes,...e.dataAttributes,...b,onBlur:Tr,onChange:xr})}))}import{jsx as Yn}from"react/jsx-runtime";function Xn(e){return!e.errors||e.errors.length===0?null:Yn("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,n)=>Yn("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}import{twMerge as Ko}from"tailwind-merge";import{jsx as zo}from"react/jsx-runtime";function Se(e){let t=e.errors&&e.errors.length>0;return zo("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[lt]:"true"},...e.disabled&&{[at]:"true"},"data-orientation":e.orientation,className:Ko("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",Zt(e.cols),e.className),children:e.children})}import{twMerge as jo}from"tailwind-merge";import{jsx as Jo}from"react/jsx-runtime";function qn(e){return Jo(Se,{...e,orientation:E,className:jo("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}import{twMerge as Qo}from"tailwind-merge";import{jsx as ei}from"react/jsx-runtime";function Hn(e){return ei(Se,{...e,orientation:_,className:Qo("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}import{jsx as $n}from"react/jsx-runtime";function Zn(e){let t=de(e.field),n=p(e.field);return e.orientation===E?$n(qn,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):$n(Hn,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var Re=Pe();function Wn(e){if(g(e))return ti(e)}function ti(e){if(ce(e))return Wt();if(se(e)){let t=e.advanced?.length?.min??Re,n=e.advanced?.length?.max??Re+5;return Kt(Oe(t,Re),Oe(n,Re))}}function Kn(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return ve(e)?{...n,...ni(e)}:g(e)?{...n,...ri(e)}:we(e)?{...n,...oi(e)}:n}function ni(e){let t=xt(e.type),n={...e,type:t};return{...zn(e),...ii(n),...Ft(n)?jn(n):{},type:t}}function ri(e){let t=Wn(e);return t?{options:t}:{}}function oi(e){return{...zn(e),...jn(e)}}function zn(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ii(e){return ue(e)?li(e):{}}function jn(e){return Jn(e,{min:ut,max:dt})}function li(e){return Jn(e,{min:re,max:oe})}function Jn(e,t){let n={},r=e.advanced?.length;return r&&(r.min!==void 0&&(n[t.min]=r.min),r.max!==void 0&&(n[t.max]=r.max)),n}function Qn(e,t){let n=Yt(e.advanced?.aria);return t&&t.length>0&&(n[it]="true",n[ot]=`${e.name}-error`),n}function er(e){return Xt(e.advanced?.data)}function tr(e){if(!e.field.type)return null;let t=Kn(e.field,e.disabled),n=er(e.field),r=Qn(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:r,commonProps:t,dataAttributes:n,field:o,orientation:e.orientation})}import{jsx as _e,jsxs as ai}from"react/jsx-runtime";function nr(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=pe(e.style,{orientation:Ot(e.field)}),o=Dt(e.field,e.disabled);return ai("div",{className:"flex flex-col gap-3",children:[_e(Zn,{cols:t,disabled:o,errors:n,field:e.field,orientation:r,children:_e(tr,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),_e(Xn,{errors:n,name:e.field.name})]})}import{useAtomValue as ci}from"jotai";import{jsx as si}from"react/jsx-runtime";function rr(e){return n=>{let r=ci(be(n.field.name));return si(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}import{useAtomValue as ui}from"jotai";import{jsx as di}from"react/jsx-runtime";function or(e){return n=>{let r=ui(En(n.field.name));if(r?.hidden??n.field.hidden??!1)return null;let i=r?.disabled??n.disabled;return di(e,{...n,disabled:i})}}var ir=or(rr(nr));import{twMerge as fi}from"tailwind-merge";import{jsx as lr}from"react/jsx-runtime";function ar(e){let t=$t(e.column?.advanced?.cols);return lr("div",{className:"flex w-full flex-col gap-4",children:lr("div",{className:fi("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{Fragment as mi}from"react";import{jsx as Ue,jsxs as pi}from"react/jsx-runtime";function Be(e){let{column:t,field:n}=e.components;return me(e.fields).map((r,o)=>pi(mi,{children:[kt(r)&&Ue(t,{column:r,children:Ue(Be,{...e,fields:r.fields})}),It(r)&&Ue(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}import{jsx as gi}from"react/jsx-runtime";function cr(e){return n=>gi(Be,{...n,components:{column:ar,field:e}})}import{useSetAtom as sr}from"jotai";import{startTransition as ur,useActionState as yi}from"react";function fr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},l=sr(Nn),a=sr(Mn),c={data:null,error:null,success:!1},[s,f,y]=yi(async(v,B)=>{let[G,J]=e(),Y=zt(G,J);if(i===!1)return t?await t(B,Y):v;let C=Tt(B),w=Y.safeParse(C);if(!w.success){let b=jt(w.error);return ur(()=>{l(b)}),Ge(C,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let b=await t(C,Y);return b.success?(r?.(b.data),o||ur(()=>{a()}),dr(C,o)):Ge(C,b.error)}catch(b){return $.error("Error executing form action:",b),Ge(C,{title:"An unexpected error occurred submitting the form.",details:bi(b)})}return dr(w.data,o)},c);return[f,s,y]}function bi(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function dr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function Ge(e,t){return{data:e,error:t,success:!1}}import{startTransition as Ti,useCallback as pr,useRef as Xe}from"react";import{useCallback as xi}from"react";import{useSetAtom as Ye}from"jotai";function mr(){let e=Ye(Fn),t=Ye(vn),n=Ye(_n);return xi(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function gr(){let e=mr(),t=Xe({}),n=Xe([]),r=Xe(new Set),o=pr((a,c,s)=>{a in t.current||(t.current[a]=c,n.current.push(s))},[]),i=pr(a=>{t.current[a]&&(delete t.current[a],n.current=n.current.filter(c=>c.name!==a),r.current.add(a),Ti(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function l(){return[t.current,n.current]}return[l,o,i]}import{Fragment as Si,jsx as j,jsxs as Ri}from"react/jsx-runtime";var hi=cr(ir);function yr(e){let[t,n,r]=gr(),[o,i,l]=fr(t,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit}),a=e.config.validation.showError&&!i.success&&i.error,c=i.data??e.value;return Ri(Si,{children:[a&&ye(e.config.alert,s=>j("div",{className:"mb-4 w-full",children:j(s,{description:i.error?.description,details:i.error?.details,title:i.error.title})})),j(mn,{action:o,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:s,fields:f})=>j(hi,{disabled:s,fields:f,style:e.config.style,children:y=>j(Gn,{...y,config:e.config,context:e.context,onMount:n,onUnmount:r,value:c})})})]})}import{Provider as Ai}from"jotai";import{jsx as br}from"react/jsx-runtime";function Ci(e){return br(Ai,{children:br(yr,{...e})})}export{Ci as Form};
|
package/dist/config/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var f=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var P=(t,n)=>{for(var r in n)f(t,r,{get:n[r],enumerable:!0})},_=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of N(n))!O.call(t,o)&&o!==r&&f(t,o,{get:()=>n[o],enumerable:!(e=C(n,o))||e.enumerable});return t};var w=t=>_(f({},"__esModule",{value:!0}),t);var rt={};P(rt,{defineCheckbox:()=>J,defineConfig:()=>q,defineCustomInput:()=>nt,defineInput:()=>z,defineRadio:()=>Z,defineSelect:()=>Q,defineTextArea:()=>tt});module.exports=w(rt);var D="input",M="input/email",U="input/number",k="input/password",X="input/tel",v="input/text",m=[D,M,U,k,X,v],h="textarea",A="radio",y="checkbox",V="select",j="select/month",F="select/year",I=[V,j,F];var u="http://luna.internal";function R(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function i(t){return typeof t=="string"}function a(t){return i(t)?/{([^}]+)}/.test(t):Array.isArray(t)?t.some(n=>a(n)):R(t)?Object.values(t).some(n=>a(n)):!1}var b={error:(...t)=>{l()&&!x()&&p().error("[Luna Form]",...t)},warn:(...t)=>{l()&&!x()&&p().warn("[Luna Form]",...t)},info:(...t)=>{l()&&!x()&&p().info("[Luna Form]",...t)}},l=()=>typeof p()<"u",x=()=>!0,p=()=>globalThis.console;function S(t){try{return t instanceof FormData?null:i(t)?t:JSON.stringify(t)}catch{return b.error("Failed to stringify body:",t),null}}var G=/(^|[\/?=&])(null|undefined)([\/?=&]|$)/;async function L(t){let[n,r]=H(t),e=t.body,o=$(t);if(e&&!d(r)){let g=S(e);g!==null&&(e=g,o=B(o))}let c=n.origin===u?n.toString().replace(u,""):n.toString(),T=await fetch(c,{body:W(r,e),cache:t.cache,headers:o,method:r}),E=await T.json();if(T.ok)return E;throw E}function H(t){let n=t.url?.trim();if(!n||!K(n))throw new Error(`Invalid URL: ${t.url}`);let r=new URL(n,u),e=Y(t);return t.body&&d(e)&&Object.entries(t.body).filter(([,o])=>o!==void 0&&o!=="undefined").forEach(([o,c])=>{r.searchParams.append(o,String(c))}),[r,e]}function B(t){return{...t,"Content-Type":"application/json"}}function K(t){return!i(t)||a(t)?!1:!G.test(t)}function Y(t){return t.method??"GET"}function $(t){return{Accept:"application/json",...t.headers??{}}}function d(t){return t.toUpperCase()==="GET"}function W(t,n){if(!d(t))return n}function q(t){let n={alert:t.alert,env:t.env,fetcher:{provider:L,remotePatterns:t.fetcher?.remotePatterns},inputs:{},style:t.style};return n.validation=t.validation??{blur:!0,change:!0,showError:!0,submit:!0},t.inputs.forEach(({types:r,input:e})=>{(Array.isArray(r)?r:[r]).forEach(c=>{n.inputs[c]=e})}),n}var J=s([y]),z=s(m),Z=s([A]),Q=s(I),tt=s([h]);function nt(t,n){return s(t)(n)}function s(t){return n=>({types:t,input:n})}
|
package/dist/config/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var L="input",C="input/email",N="input/number",O="input/password",P="input/tel",_="input/text",g=[L,C,N,O,P,_],m="textarea",h="radio",A="checkbox",w="select",D="select/month",M="select/year",y=[w,D,M];var u="http://luna.internal";function I(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function i(t){return typeof t=="string"}function a(t){return i(t)?/{([^}]+)}/.test(t):Array.isArray(t)?t.some(n=>a(n)):I(t)?Object.values(t).some(n=>a(n)):!1}var R={error:(...t)=>{f()&&!l()&&p().error("[Luna Form]",...t)},warn:(...t)=>{f()&&!l()&&p().warn("[Luna Form]",...t)},info:(...t)=>{f()&&!l()&&p().info("[Luna Form]",...t)}},f=()=>typeof p()<"u",l=()=>!0,p=()=>globalThis.console;function b(t){try{return t instanceof FormData?null:i(t)?t:JSON.stringify(t)}catch{return R.error("Failed to stringify body:",t),null}}var U=/(^|[\/?=&])(null|undefined)([\/?=&]|$)/;async function S(t){let[n,r]=k(t),o=t.body,e=j(t);if(o&&!x(r)){let E=b(o);E!==null&&(o=E,e=X(e))}let c=n.origin===u?n.toString().replace(u,""):n.toString(),d=await fetch(c,{body:F(r,o),cache:t.cache,headers:e,method:r}),T=await d.json();if(d.ok)return T;throw T}function k(t){let n=t.url?.trim();if(!n||!v(n))throw new Error(`Invalid URL: ${t.url}`);let r=new URL(n,u),o=V(t);return t.body&&x(o)&&Object.entries(t.body).filter(([,e])=>e!==void 0&&e!=="undefined").forEach(([e,c])=>{r.searchParams.append(e,String(c))}),[r,o]}function X(t){return{...t,"Content-Type":"application/json"}}function v(t){return!i(t)||a(t)?!1:!U.test(t)}function V(t){return t.method??"GET"}function j(t){return{Accept:"application/json",...t.headers??{}}}function x(t){return t.toUpperCase()==="GET"}function F(t,n){if(!x(t))return n}function ot(t){let n={alert:t.alert,env:t.env,fetcher:{provider:S,remotePatterns:t.fetcher?.remotePatterns},inputs:{},style:t.style};return n.validation=t.validation??{blur:!0,change:!0,showError:!0,submit:!0},t.inputs.forEach(({types:r,input:o})=>{(Array.isArray(r)?r:[r]).forEach(c=>{n.inputs[c]=o})}),n}var et=s([A]),it=s(g),st=s([h]),ct=s(y),ut=s([m]);function at(t,n){return s(t)(n)}function s(t){return n=>({types:t,input:n})}export{et as defineCheckbox,ot as defineConfig,at as defineCustomInput,it as defineInput,st as defineRadio,ct as defineSelect,ut as defineTextArea};
|
package/dist/server/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var U=Object.defineProperty;var qt=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Zt=Object.prototype.hasOwnProperty;var Jt=(e,t)=>{for(var n in t)U(e,n,{get:t[n],enumerable:!0})},Qt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zt(t))!Zt.call(e,o)&&o!==n&&U(e,o,{get:()=>t[o],enumerable:!(r=qt(t,o))||r.enumerable});return e};var jt=e=>Qt(U({},"__esModule",{value:!0}),e);var bn={};Jt(bn,{Fallback:()=>Ht,Form:()=>Y});module.exports=jt(bn);var re=require("react/jsx-runtime");function ne(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,re.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var oe=require("react/jsx-runtime");function F(e){return(0,oe.jsx)("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var O="input",ie="input/email",le="input/number";var ae="textarea",ce="radio",se="checkbox",de="select",ue="select/month",fe="select/year";var $="column";var me="label",H="value",L="options",K="email",pe="number",ge="password",ye="tel",S="text",be="aria-errormessage",xe="aria-invalid",Te="data-invalid",Re="data-readonly",Ae="aria",Ce="data",he="min",Fe="max",Se="minLength",Ne="maxLength",b="$ref";var f="vertical",x="horizontal";function a(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function T(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function w(e){return typeof e=="string"}var en=/[^/]+$/;function Ee(e,t=H){if(e!=null){if(T(e))return e;if(a(e)){let n=tn(e,t);if(T(n))return n}}}function tn(e,t){let n=N(e,t);if(T(n))return n}function N(e,t){if(!t||!a(e))return null;let n=t.split(".").filter(o=>o!=="");if(n.length===0)return null;let r=e;for(let o of n)if(a(r)&&o in r)r=r[o];else return null;return r}function Ie(e,t={label:me,value:H}){return e.map(n=>{if(a(n)){let r=N(n,t.label),o=N(n,t.value);if(T(r)&&T(o))return{label:`${r}`,value:`${o}`}}return n})}function ke(e=S){if(e){let t=e.match(en);if(t){let[n]=t;if(n!==O)return n.trim().toLowerCase()}}return S}var nn=/\[([^\]]+)\]\(([^)]+)\)/g;function Pe(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=nn.exec(e))!==null;){let[l,m,Kt]=n,P=n.index;o=!0,P>r&&i.push(e.substring(r,P));let Wt=t?t(P,Kt,m):l;i.push(Wt),r=P+l.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var Oe=e=>s(ue)(e),Le=e=>s(fe)(e),d=s(se),we=s(O),p=s(ce),c=s(de),De=s(ae),_e=s(S,K,ge,ye),kn=s(ie,K),Me=s(le,pe);function Ve(e){return p(e)||d(e)}function ve(e){return e.type===$}function Ge(e){return e.type!==$}function Be(e){return c(e)||p(e)}function W(e){return e!=null&&e!==""}function s(...e){return t=>{let n=w(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Xe(e,t={}){if(c(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&a(n))return[n]}}function D(e){return p(e)||d(e)?x:e.advanced?.orientation??f}function Ye(e,t){let n=e.readonly??!1;return t||n}function Ue(e){if(p(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||a(t)&&!(b in t))return t}}function $e(e,t){let n=Ue(e);return n||Xe(e,t)}function rn(e,t){let n=a(t)&&e.name in t?t[e.name]:t;return Ee(n,e.advanced?.entity)}function on(e,t,n){return Be(e)&&Array.isArray(n)?{...t,[L]:n}:t}function ln(e,t,n){if(e.required&&!W(n)&&c(e)&&e.advanced?.preselected!==!1&&L in t){let r=t[L];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function an(e,t){return c(e)&&Array.isArray(t)?Ie(t,e.advanced?.options):t}function He(e,t,n,r){let o=rn(e,r),i=Array.isArray(n)?an(e,n):n,l=on(e,t,i),m=ln(e,l,o);return{commonPropsWithOptions:l,defaultValue:m}}function Ke(e,t){return d(e)?{defaultChecked:W(t)}:{defaultValue:t}}var cn=/^#\/definition\//;function M(e=[],t){let n=_(e,t);return Array.isArray(n)?n.sort((r,o)=>We(r)-We(o)):[]}function _(e,t,n=new Map,r=new WeakSet){if(!sn(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(r.has(e))return e;if(r.add(e),Array.isArray(e))return e.map(i=>_(i,t,n,r));if(b in e&&w(e[b])){let i=e[b].replace(cn,""),l=N(t,i);return l!==null?_(l,t,n,r):e}let o={};for(let[i,l]of Object.entries(e))o[i]=_(l,t,n,r);return r.delete(e),n.set(e,o),o}function qe(e){return Object.entries(e??{})}function We(e){return e.order??Number.MAX_VALUE}function sn(e){return e!==void 0&&a(e)&&Object.keys(e).length>0}function ze(e,t){let n={};for(let[r,o]of qe(t))n[`${e}-${r}`]=o;return n}function Ze(e){return ze(Ae,e)}function Je(e){return ze(Ce,e)}var Qe={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},je={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function et(e,t=2){return Qe[e&&e in Qe?e:t]}function tt(e){if(e&&e in je)return je[e]}var dn=/^\d+$/;function nt(){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},(n,r)=>{let o=e+r;return{value:o.toString(),label:o.toString()}}):[]}function q(){return new Date().getFullYear()}function z(e,t){if(typeof e=="number")return e;let n=t??q(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,m=parseInt(l,10);if(!isNaN(m))return i==="+"?n+m:n-m}return n}return dn.test(r)?parseInt(r,10):n}function V(e,t){return{...e,...t}}var ot=require("react/jsx-runtime");function E(e){return Pe(e,(t,n,r)=>(0,ot.jsx)("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}var g=require("react/jsx-runtime");function it(e){return(0,g.jsxs)(g.Fragment,{children:[e.title&&(0,g.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:E(e.title)}),e.description&&(0,g.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:E(e.description)})]})}var R=require("react/jsx-runtime");function lt(e){let t=e.section.fields||[],{compact:n}=V(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,R.jsx)(F,{compact:n,children:e.children}):(0,R.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[(0,R.jsx)(it,{description:e.section.description,title:e.section.title}),(0,R.jsx)(F,{compact:n,children:e.children})]})}var ct=require("react");var Z=require("react/jsx-runtime");function at(){return(0,Z.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,Z.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var u=require("react/jsx-runtime");function st(e){let t=M(e.sections,e.definition);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)(F,{children:[t.map((n,r)=>(0,u.jsxs)(ct.Fragment,{children:[(0,u.jsx)(lt,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&(0,u.jsx)(at,{})]},r)),e.control&&(0,u.jsx)(ne,{isPending:e.isPending,children:e.control})]})})})}var ut=require("react/jsx-runtime");function dt(e){return(0,ut.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var ft=require("react/jsx-runtime");function A(e){let t=E(e.text);return t?(0,ft.jsx)(dt,{children:t}):null}var mt=require("tailwind-merge"),v=require("react/jsx-runtime");function pt(e){let t=p(e.field)||d(e.field);return(0,v.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,mt.twMerge)("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&(0,v.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var I=require("react/jsx-runtime");function gt(e){return(0,I.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,I.jsx)(pt,{field:e.field,children:e.field.label}),e.orientation===x&&(0,I.jsx)(A,{text:e.field.description})]})}var y=require("react/jsx-runtime");function yt(e){let t=D(e.field);return(0,y.jsxs)(y.Fragment,{children:[e.field.name&&e.field.label&&(0,y.jsx)(gt,{field:e.field,orientation:t}),e.children,t===f&&e.field.description&&(0,y.jsx)(A,{text:e.field.description})]})}function bt(e,t){return e?t(e):null}var k=require("react/jsx-runtime");function xt(e){let t=$e(e.field,e.value),{commonPropsWithOptions:n,defaultValue:r}=He(e.field,e.commonProps,t,e.value),o=Ke(e.field,r);return bt(e.config.inputs[e.field.type],i=>(0,k.jsxs)(yt,{field:e.field,children:[(0,k.jsx)(i,{...e.ariaAttributes,...n,...e.dataAttributes,...o}),(0,k.jsx)(A,{text:e.field.description})]}))}var J=require("react/jsx-runtime");function Tt(e){return!e.errors||e.errors.length===0?null:(0,J.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,n)=>(0,J.jsx)("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var Rt=require("tailwind-merge"),At=require("react/jsx-runtime");function G(e){let t=e.errors&&e.errors.length>0;return(0,At.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Te]:"true"},...e.disabled&&{[Re]:"true"},"data-orientation":e.orientation,className:(0,Rt.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",tt(e.cols),e.className),children:e.children})}var Ct=require("tailwind-merge"),Ft=require("react/jsx-runtime");function ht(e){return(0,Ft.jsx)(G,{...e,orientation:f,className:(0,Ct.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var St=require("tailwind-merge"),Et=require("react/jsx-runtime");function Nt(e){return(0,Et.jsx)(G,{...e,orientation:x,className:(0,St.twMerge)("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}var Q=require("react/jsx-runtime");function It(e){let t=Ve(e.field),n=d(e.field);return e.orientation===f?(0,Q.jsx)(ht,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):(0,Q.jsx)(Nt,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var B=q();function kt(e){if(c(e))return un(e)}function un(e){if(Oe(e))return nt();if(Le(e)){let t=e.advanced?.length?.min??B,n=e.advanced?.length?.max??B+5;return rt(z(t,B),z(n,B))}}function Pt(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return we(e)?{...n,...fn(e)}:c(e)?{...n,...mn(e)}:De(e)?{...n,...pn(e)}:n}function fn(e){let t=ke(e.type),n={...e,type:t};return{...Ot(e),...gn(n),..._e(n)?Lt(n):{},type:t}}function mn(e){let t=kt(e);return t?{options:t}:{}}function pn(e){return{...Ot(e),...Lt(e)}}function Ot(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function gn(e){return Me(e)?yn(e):{}}function Lt(e){return wt(e,{min:Se,max:Ne})}function yn(e){return wt(e,{min:he,max:Fe})}function wt(e,t){let n={},r=e.advanced?.length;return r&&(r.min!==void 0&&(n[t.min]=r.min),r.max!==void 0&&(n[t.max]=r.max)),n}function Dt(e,t){let n=Ze(e.advanced?.aria);return t&&t.length>0&&(n[xe]="true",n[be]=`${e.name}-error`),n}function _t(e){return Je(e.advanced?.data)}function Mt(e){if(!e.field.type)return null;let t=Pt(e.field,e.disabled),n=_t(e.field),r=Dt(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:r,commonProps:t,dataAttributes:n,field:o})}var C=require("react/jsx-runtime");function Vt(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=V(e.style,{orientation:D(e.field)}),o=Ye(e.field,e.disabled);return(0,C.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,C.jsx)(It,{cols:t,disabled:o,errors:n,field:e.field,orientation:r,children:(0,C.jsx)(Mt,{disabled:o,errors:n,field:e.field,children:e.children})}),(0,C.jsx)(Tt,{errors:n,name:e.field.name})]})}var vt=require("tailwind-merge"),j=require("react/jsx-runtime");function Gt(e){let t=et(e.column?.advanced?.cols);return(0,j.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,j.jsx)("div",{className:(0,vt.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Bt=require("react"),h=require("react/jsx-runtime");function ee(e){let{column:t,field:n}=e.components;return M(e.fields).map((r,o)=>(0,h.jsxs)(Bt.Fragment,{children:[ve(r)&&(0,h.jsx)(t,{column:r,children:(0,h.jsx)(ee,{...e,fields:r.fields})}),Ge(r)&&(0,h.jsx)(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}var Yt=require("react/jsx-runtime");function Xt(e){return n=>(0,Yt.jsx)(ee,{...n,components:{column:Gt,field:e}})}var Ut=Xt(Vt);var X=require("react/jsx-runtime");function Y(e){return(0,X.jsx)(st,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:n})=>(0,X.jsx)(Ut,{disabled:t,fields:n,style:e.config.style,children:r=>(0,X.jsx)(xt,{...r,config:e.config,source:e.source,value:e.value})})})}var $t=require("react");var te=require("react/jsx-runtime");function Ht(e){return(0,te.jsx)($t.Suspense,{fallback:(0,te.jsx)(Y,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}
|
|
1
|
+
"use strict";var B=Object.defineProperty;var Zt=Object.getOwnPropertyDescriptor;var Jt=Object.getOwnPropertyNames;var Qt=Object.prototype.hasOwnProperty;var jt=(e,t)=>{for(var n in t)B(e,n,{get:t[n],enumerable:!0})},en=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Jt(t))!Qt.call(e,r)&&r!==n&&B(e,r,{get:()=>t[r],enumerable:!(o=Zt(t,r))||o.enumerable});return e};var tn=e=>en(B({},"__esModule",{value:!0}),e);var Tn={};jt(Tn,{Fallback:()=>Wt,Form:()=>U});module.exports=tn(Tn);var re=require("react/jsx-runtime");function oe(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,re.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var ie=require("react/jsx-runtime");function N(e){return(0,ie.jsx)("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var w="input",le="input/email",ae="input/number";var ce="textarea",se="radio",de="checkbox",ue="select",fe="select/month",me="select/year";var $="column";var pe="label",H="value",L="options",K="email",ge="number",ye="password",be="tel",S="text",xe="aria-errormessage",Re="aria-invalid",Te="data-invalid",Ae="data-readonly",Ce="aria",he="data",Fe="min",Ne="max",Se="minLength",Ee="maxLength",T="$ref";var f="vertical",A="horizontal";function l(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function m(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function g(e){return typeof e=="string"}var nn=/[^/]+$/;function Ie(e,t=H){if(e!=null){if(m(e))return e;if(l(e)){let n=on(e,t);if(m(n))return n}}}function on(e,t){let n=y(e,t);if(m(n))return n}function y(e,t){if(!t||!l(e))return null;let n=t.split(".").filter(r=>r!=="");if(n.length===0)return null;let o=e;for(let r of n)if(l(o)&&r in o)o=o[r];else return null;return o}function ke(e,t={label:pe,value:H}){return e.map(n=>{if(l(n)){let o=y(n,t.label),r=y(n,t.value);if(m(o)&&m(r))return{label:`${o}`,value:`${r}`}}return n})}function Oe(e=S){if(e){let t=e.match(nn);if(t){let[n]=t;if(n!==w)return n.trim().toLowerCase()}}return S}var rn=/\[([^\]]+)\]\(([^)]+)\)/g;function E(e,t={}){if(g(e))return ln(e,t);if(Array.isArray(e))return e.map(n=>E(n,t));if(l(e)){let n={};for(let o in e)n[o]=E(e[o],t);return n}return e}function I(e){return g(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>I(t)):l(e)?Object.values(e).some(t=>I(t)):!1}function ln(e,t={}){return e.replace(/{([^}]+)}/g,(n,o)=>{let r=o.includes(".")?y(t,o):t[o];return m(r)?String(r):n})}function Pe(e,t){if(!e||e.trim().length===0)return null;let n,o=0,r=!1,i=[];for(;(n=rn.exec(e))!==null;){let[a,p,qt]=n,P=n.index;r=!0,P>o&&i.push(e.substring(o,P));let zt=t?t(P,qt,p):a;i.push(zt),o=P+a.length}return r?(o<e.length&&i.push(e.substring(o)),i):e}var we=e=>s(fe)(e),Le=e=>s(me)(e),d=s(de),De=s(w),b=s(se),c=s(ue),_e=s(ce),Me=s(S,K,ye,be),Dn=s(le,K),Ve=s(ae,ge);function ve(e){return b(e)||d(e)}function Ge(e){return e.type===$}function Xe(e){return e.type!==$}function Ye(e){return c(e)||b(e)}function W(e){return e!=null&&e!==""}function s(...e){return t=>{let n=g(t.type)?t.type:void 0;return n?e.some(o=>n===o||n?.startsWith(`${o}/`)):!1}}function Ue(e,t={}){if(c(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&l(n))return[n]}}function Be(e){return b(e)||d(e)?A:e.advanced?.orientation??f}function $e(e,t){let n=e.readonly??!1;return t||n}function He(e){if(b(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||l(t)&&!(T in t))return t}}function Ke(e,t){let n=He(e);return n||Ue(e,t)}function an(e,t){let n=l(t)&&e.name in t?t[e.name]:t;return Ie(n,e.advanced?.entity)}function cn(e,t,n){return Ye(e)&&Array.isArray(n)?{...t,[L]:n}:t}function sn(e,t,n){if(e.required&&!W(n)&&c(e)&&e.advanced?.preselected!==!1&&L in t){let o=t[L];if(Array.isArray(o)&&o.length===1)return o[0]}return n}function dn(e,t){return c(e)&&Array.isArray(t)?ke(t,e.advanced?.options):t}function We(e,t,n,o){let r=an(e,o),i=Array.isArray(n)?dn(e,n):n,a=cn(e,t,i),p=sn(e,a,r);return{commonPropsWithOptions:a,defaultValue:p}}function qe(e,t){return d(e)?{defaultChecked:W(t)}:{defaultValue:t}}var un=/^#\/definition\//;function _(e=[],t){let n=D(e,t);return Array.isArray(n)?n.sort((o,r)=>ze(o)-ze(r)):[]}function D(e,t,n=new Map,o=new WeakSet){if(!fn(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>D(i,t,n,o));if(T in e&&g(e[T])){let i=e[T].replace(un,""),a=y(t,i);return a!==null?D(a,t,n,o):e}let r={};for(let[i,a]of Object.entries(e))r[i]=D(a,t,n,o);return o.delete(e),n.set(e,r),r}function Ze(e){return Object.entries(e??{})}function ze(e){return e.order??Number.MAX_VALUE}function fn(e){return e!==void 0&&l(e)&&Object.keys(e).length>0}function Je(e,t){let n={};for(let[o,r]of Ze(t))n[`${e}-${o}`]=r;return n}function Qe(e){return Je(Ce,e)}function je(e){return Je(he,e)}var et={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},tt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function nt(e,t=2){return et[e&&e in et?e:t]}function ot(e){if(e&&e in tt)return tt[e]}var mn=/^\d+$/;function rt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function it(e,t){return t>=e?Array.from({length:t-e+1},(n,o)=>{let r=e+o;return{value:r.toString(),label:r.toString()}}):[]}function q(){return new Date().getFullYear()}function z(e,t){if(typeof e=="number")return e;let n=t??q(),o=e.trim().toLowerCase();if(o.startsWith("current")){let r=o.match(/^current([+-])(\d+)$/);if(r){let[,i,a]=r,p=parseInt(a,10);if(!isNaN(p))return i==="+"?n+p:n-p}return n}return mn.test(o)?parseInt(o,10):n}function M(e,t){return{...e,...t}}var lt=require("react/jsx-runtime");function k(e){return Pe(e,(t,n,o)=>(0,lt.jsx)("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:o},`${n}-${t}`))}var x=require("react/jsx-runtime");function at(e){return(0,x.jsxs)(x.Fragment,{children:[e.title&&(0,x.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:k(e.title)}),e.description&&(0,x.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:k(e.description)})]})}var C=require("react/jsx-runtime");function ct(e){let t=e.section.fields||[],{compact:n}=M(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,C.jsx)(N,{compact:n,children:e.children}):(0,C.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[(0,C.jsx)(at,{description:e.section.description,title:e.section.title}),(0,C.jsx)(N,{compact:n,children:e.children})]})}var dt=require("react");var Z=require("react/jsx-runtime");function st(){return(0,Z.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,Z.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var u=require("react/jsx-runtime");function ut(e){let t=_(e.sections,e.definition);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)(N,{children:[t.map((n,o)=>(0,u.jsxs)(dt.Fragment,{children:[(0,u.jsx)(ct,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&(0,u.jsx)(st,{})]},o)),e.control&&(0,u.jsx)(oe,{isPending:e.isPending,children:e.control})]})})})}var mt=require("react/jsx-runtime");function ft(e){return(0,mt.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var pt=require("react/jsx-runtime");function V(e){let t=k(e.text);return t?(0,pt.jsx)(ft,{children:t}):null}var gt=require("tailwind-merge"),v=require("react/jsx-runtime");function yt(e){let t=b(e.field)||d(e.field);return(0,v.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,gt.twMerge)("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&(0,v.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var O=require("react/jsx-runtime");function bt(e){let t=I(e.field.label)?E(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=I(e.field.description)?E(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return(0,O.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,O.jsx)(yt,{field:e.field,children:t}),e.orientation===A&&(0,O.jsx)(V,{text:n})]})}var R=require("react/jsx-runtime");function xt(e){return(0,R.jsxs)(R.Fragment,{children:[e.field.name&&e.field.label&&(0,R.jsx)(bt,{config:e.config,context:e.context,field:e.field,orientation:e.orientation}),e.children,e.orientation===f&&e.field.description&&(0,R.jsx)(V,{text:e.field.description})]})}function Rt(e,t){return e?t(e):null}var J=require("react/jsx-runtime");function Tt(e){let t=Ke(e.field,e.value),{commonPropsWithOptions:n,defaultValue:o}=We(e.field,e.commonProps,t,e.value),r=qe(e.field,o);return Rt(e.config.inputs[e.field.type],i=>(0,J.jsx)(xt,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,children:(0,J.jsx)(i,{...e.ariaAttributes,...n,...e.dataAttributes,...r})}))}var Q=require("react/jsx-runtime");function At(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,n)=>(0,Q.jsx)("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var Ct=require("tailwind-merge"),ht=require("react/jsx-runtime");function G(e){let t=e.errors&&e.errors.length>0;return(0,ht.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Te]:"true"},...e.disabled&&{[Ae]:"true"},"data-orientation":e.orientation,className:(0,Ct.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",ot(e.cols),e.className),children:e.children})}var Ft=require("tailwind-merge"),St=require("react/jsx-runtime");function Nt(e){return(0,St.jsx)(G,{...e,orientation:f,className:(0,Ft.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var Et=require("tailwind-merge"),kt=require("react/jsx-runtime");function It(e){return(0,kt.jsx)(G,{...e,orientation:A,className:(0,Et.twMerge)("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}var j=require("react/jsx-runtime");function Ot(e){let t=ve(e.field),n=d(e.field);return e.orientation===f?(0,j.jsx)(Nt,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):(0,j.jsx)(It,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var X=q();function Pt(e){if(c(e))return pn(e)}function pn(e){if(we(e))return rt();if(Le(e)){let t=e.advanced?.length?.min??X,n=e.advanced?.length?.max??X+5;return it(z(t,X),z(n,X))}}function wt(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return De(e)?{...n,...gn(e)}:c(e)?{...n,...yn(e)}:_e(e)?{...n,...bn(e)}:n}function gn(e){let t=Oe(e.type),n={...e,type:t};return{...Lt(e),...xn(n),...Me(n)?Dt(n):{},type:t}}function yn(e){let t=Pt(e);return t?{options:t}:{}}function bn(e){return{...Lt(e),...Dt(e)}}function Lt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function xn(e){return Ve(e)?Rn(e):{}}function Dt(e){return _t(e,{min:Se,max:Ee})}function Rn(e){return _t(e,{min:Fe,max:Ne})}function _t(e,t){let n={},o=e.advanced?.length;return o&&(o.min!==void 0&&(n[t.min]=o.min),o.max!==void 0&&(n[t.max]=o.max)),n}function Mt(e,t){let n=Qe(e.advanced?.aria);return t&&t.length>0&&(n[Re]="true",n[xe]=`${e.name}-error`),n}function Vt(e){return je(e.advanced?.data)}function vt(e){if(!e.field.type)return null;let t=wt(e.field,e.disabled),n=Vt(e.field),o=Mt(e.field,e.errors),r={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:n,field:r,orientation:e.orientation})}var h=require("react/jsx-runtime");function Gt(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:o}=M(e.style,{orientation:Be(e.field)}),r=$e(e.field,e.disabled);return(0,h.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,h.jsx)(Ot,{cols:t,disabled:r,errors:n,field:e.field,orientation:o,children:(0,h.jsx)(vt,{disabled:r,errors:n,field:e.field,orientation:o,children:e.children})}),(0,h.jsx)(At,{errors:n,name:e.field.name})]})}var Xt=require("tailwind-merge"),ee=require("react/jsx-runtime");function Yt(e){let t=nt(e.column?.advanced?.cols);return(0,ee.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,ee.jsx)("div",{className:(0,Xt.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Ut=require("react"),F=require("react/jsx-runtime");function te(e){let{column:t,field:n}=e.components;return _(e.fields).map((o,r)=>(0,F.jsxs)(Ut.Fragment,{children:[Ge(o)&&(0,F.jsx)(t,{column:o,children:(0,F.jsx)(te,{...e,fields:o.fields})}),Xe(o)&&(0,F.jsx)(n,{disabled:e.disabled,field:o,style:e.style,children:e.children})]},r))}var $t=require("react/jsx-runtime");function Bt(e){return n=>(0,$t.jsx)(te,{...n,components:{column:Yt,field:e}})}var Ht=Bt(Gt);var Y=require("react/jsx-runtime");function U(e){return(0,Y.jsx)(ut,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:n})=>(0,Y.jsx)(Ht,{disabled:t,fields:n,style:e.config.style,children:o=>(0,Y.jsx)(Tt,{...o,config:e.config,context:e.context,value:e.value})})})}var Kt=require("react");var ne=require("react/jsx-runtime");function Wt(e){return(0,ne.jsx)(Kt.Suspense,{fallback:(0,ne.jsx)(U,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}
|
package/dist/server/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as kt}from"react/jsx-runtime";function H(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return kt("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as Pt}from"react/jsx-runtime";function x(e){return Pt("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var F="input",K="input/email",W="input/number";var q="textarea",z="radio",Z="checkbox",J="select",Q="select/month",j="select/year";var w="column";var ee="label",D="value",S="options",_="email",te="number",ne="password",re="tel",T="text",oe="aria-errormessage",ie="aria-invalid",le="data-invalid",ae="data-readonly",ce="aria",se="data",de="min",ue="max",fe="minLength",me="maxLength",p="$ref";var u="vertical",g="horizontal";function a(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function y(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function N(e){return typeof e=="string"}var Ot=/[^/]+$/;function pe(e,t=D){if(e!=null){if(y(e))return e;if(a(e)){let n=Lt(e,t);if(y(n))return n}}}function Lt(e,t){let n=R(e,t);if(y(n))return n}function R(e,t){if(!t||!a(e))return null;let n=t.split(".").filter(o=>o!=="");if(n.length===0)return null;let r=e;for(let o of n)if(a(r)&&o in r)r=r[o];else return null;return r}function ge(e,t={label:ee,value:D}){return e.map(n=>{if(a(n)){let r=R(n,t.label),o=R(n,t.value);if(y(r)&&y(o))return{label:`${r}`,value:`${o}`}}return n})}function ye(e=T){if(e){let t=e.match(Ot);if(t){let[n]=t;if(n!==F)return n.trim().toLowerCase()}}return T}var wt=/\[([^\]]+)\]\(([^)]+)\)/g;function be(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=wt.exec(e))!==null;){let[l,f,Et]=n,h=n.index;o=!0,h>r&&i.push(e.substring(r,h));let It=t?t(h,Et,f):l;i.push(It),r=h+l.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var xe=e=>s(Q)(e),Te=e=>s(j)(e),d=s(Z),Re=s(F),m=s(z),c=s(J),Ae=s(q),Ce=s(T,_,ne,re),wn=s(K,_),he=s(W,te);function Fe(e){return m(e)||d(e)}function Se(e){return e.type===w}function Ne(e){return e.type!==w}function Ee(e){return c(e)||m(e)}function M(e){return e!=null&&e!==""}function s(...e){return t=>{let n=N(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Ie(e,t={}){if(c(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&a(n))return[n]}}function E(e){return m(e)||d(e)?g:e.advanced?.orientation??u}function ke(e,t){let n=e.readonly??!1;return t||n}function Pe(e){if(m(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||a(t)&&!(p in t))return t}}function Oe(e,t){let n=Pe(e);return n||Ie(e,t)}function Dt(e,t){let n=a(t)&&e.name in t?t[e.name]:t;return pe(n,e.advanced?.entity)}function _t(e,t,n){return Ee(e)&&Array.isArray(n)?{...t,[S]:n}:t}function Mt(e,t,n){if(e.required&&!M(n)&&c(e)&&e.advanced?.preselected!==!1&&S in t){let r=t[S];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function Vt(e,t){return c(e)&&Array.isArray(t)?ge(t,e.advanced?.options):t}function Le(e,t,n,r){let o=Dt(e,r),i=Array.isArray(n)?Vt(e,n):n,l=_t(e,t,i),f=Mt(e,l,o);return{commonPropsWithOptions:l,defaultValue:f}}function we(e,t){return d(e)?{defaultChecked:M(t)}:{defaultValue:t}}var vt=/^#\/definition\//;function k(e=[],t){let n=I(e,t);return Array.isArray(n)?n.sort((r,o)=>De(r)-De(o)):[]}function I(e,t,n=new Map,r=new WeakSet){if(!Gt(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(r.has(e))return e;if(r.add(e),Array.isArray(e))return e.map(i=>I(i,t,n,r));if(p in e&&N(e[p])){let i=e[p].replace(vt,""),l=R(t,i);return l!==null?I(l,t,n,r):e}let o={};for(let[i,l]of Object.entries(e))o[i]=I(l,t,n,r);return r.delete(e),n.set(e,o),o}function _e(e){return Object.entries(e??{})}function De(e){return e.order??Number.MAX_VALUE}function Gt(e){return e!==void 0&&a(e)&&Object.keys(e).length>0}function Me(e,t){let n={};for(let[r,o]of _e(t))n[`${e}-${r}`]=o;return n}function Ve(e){return Me(ce,e)}function ve(e){return Me(se,e)}var Ge={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Be={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Xe(e,t=2){return Ge[e&&e in Ge?e:t]}function Ye(e){if(e&&e in Be)return Be[e]}var Bt=/^\d+$/;function Ue(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function $e(e,t){return t>=e?Array.from({length:t-e+1},(n,r)=>{let o=e+r;return{value:o.toString(),label:o.toString()}}):[]}function V(){return new Date().getFullYear()}function v(e,t){if(typeof e=="number")return e;let n=t??V(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,f=parseInt(l,10);if(!isNaN(f))return i==="+"?n+f:n-f}return n}return Bt.test(r)?parseInt(r,10):n}function P(e,t){return{...e,...t}}import{jsx as Xt}from"react/jsx-runtime";function A(e){return be(e,(t,n,r)=>Xt("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}import{Fragment as Yt,jsx as He,jsxs as Ut}from"react/jsx-runtime";function Ke(e){return Ut(Yt,{children:[e.title&&He("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:A(e.title)}),e.description&&He("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:A(e.description)})]})}import{jsx as G,jsxs as $t}from"react/jsx-runtime";function We(e){let t=e.section.fields||[],{compact:n}=P(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?G(x,{compact:n,children:e.children}):$t("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[G(Ke,{description:e.section.description,title:e.section.title}),G(x,{compact:n,children:e.children})]})}import{Fragment as Ht}from"react";import{jsx as qe}from"react/jsx-runtime";function ze(){return qe("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:qe("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as C,jsxs as Ze}from"react/jsx-runtime";function Je(e){let t=k(e.sections,e.definition);return C("div",{className:"h-full w-full",children:C("form",{noValidate:e.noValidate,action:e.action,children:Ze(x,{children:[t.map((n,r)=>Ze(Ht,{children:[C(We,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&C(ze,{})]},r)),e.control&&C(H,{isPending:e.isPending,children:e.control})]})})})}import{jsx as Kt}from"react/jsx-runtime";function Qe(e){return Kt("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as Wt}from"react/jsx-runtime";function b(e){let t=A(e.text);return t?Wt(Qe,{children:t}):null}import{twMerge as qt}from"tailwind-merge";import{jsx as zt,jsxs as Zt}from"react/jsx-runtime";function je(e){let t=m(e.field)||d(e.field);return Zt("label",{"data-slot":"field-label","data-normal":t,className:qt("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&zt("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as et,jsxs as Jt}from"react/jsx-runtime";function tt(e){return Jt("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[et(je,{field:e.field,children:e.field.label}),e.orientation===g&&et(b,{text:e.field.description})]})}import{Fragment as Qt,jsx as nt,jsxs as jt}from"react/jsx-runtime";function rt(e){let t=E(e.field);return jt(Qt,{children:[e.field.name&&e.field.label&&nt(tt,{field:e.field,orientation:t}),e.children,t===u&&e.field.description&&nt(b,{text:e.field.description})]})}function ot(e,t){return e?t(e):null}import{jsx as it,jsxs as en}from"react/jsx-runtime";function lt(e){let t=Oe(e.field,e.value),{commonPropsWithOptions:n,defaultValue:r}=Le(e.field,e.commonProps,t,e.value),o=we(e.field,r);return ot(e.config.inputs[e.field.type],i=>en(rt,{field:e.field,children:[it(i,{...e.ariaAttributes,...n,...e.dataAttributes,...o}),it(b,{text:e.field.description})]}))}import{jsx as at}from"react/jsx-runtime";function ct(e){return!e.errors||e.errors.length===0?null:at("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,n)=>at("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}import{twMerge as tn}from"tailwind-merge";import{jsx as nn}from"react/jsx-runtime";function O(e){let t=e.errors&&e.errors.length>0;return nn("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[le]:"true"},...e.disabled&&{[ae]:"true"},"data-orientation":e.orientation,className:tn("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",Ye(e.cols),e.className),children:e.children})}import{twMerge as rn}from"tailwind-merge";import{jsx as on}from"react/jsx-runtime";function st(e){return on(O,{...e,orientation:u,className:rn("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}import{twMerge as ln}from"tailwind-merge";import{jsx as an}from"react/jsx-runtime";function dt(e){return an(O,{...e,orientation:g,className:ln("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}import{jsx as ut}from"react/jsx-runtime";function ft(e){let t=Fe(e.field),n=d(e.field);return e.orientation===u?ut(st,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):ut(dt,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var L=V();function mt(e){if(c(e))return cn(e)}function cn(e){if(xe(e))return Ue();if(Te(e)){let t=e.advanced?.length?.min??L,n=e.advanced?.length?.max??L+5;return $e(v(t,L),v(n,L))}}function pt(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Re(e)?{...n,...sn(e)}:c(e)?{...n,...dn(e)}:Ae(e)?{...n,...un(e)}:n}function sn(e){let t=ye(e.type),n={...e,type:t};return{...gt(e),...fn(n),...Ce(n)?yt(n):{},type:t}}function dn(e){let t=mt(e);return t?{options:t}:{}}function un(e){return{...gt(e),...yt(e)}}function gt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function fn(e){return he(e)?mn(e):{}}function yt(e){return bt(e,{min:fe,max:me})}function mn(e){return bt(e,{min:de,max:ue})}function bt(e,t){let n={},r=e.advanced?.length;return r&&(r.min!==void 0&&(n[t.min]=r.min),r.max!==void 0&&(n[t.max]=r.max)),n}function xt(e,t){let n=Ve(e.advanced?.aria);return t&&t.length>0&&(n[ie]="true",n[oe]=`${e.name}-error`),n}function Tt(e){return ve(e.advanced?.data)}function Rt(e){if(!e.field.type)return null;let t=pt(e.field,e.disabled),n=Tt(e.field),r=xt(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:r,commonProps:t,dataAttributes:n,field:o})}import{jsx as B,jsxs as pn}from"react/jsx-runtime";function At(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=P(e.style,{orientation:E(e.field)}),o=ke(e.field,e.disabled);return pn("div",{className:"flex flex-col gap-3",children:[B(ft,{cols:t,disabled:o,errors:n,field:e.field,orientation:r,children:B(Rt,{disabled:o,errors:n,field:e.field,children:e.children})}),B(ct,{errors:n,name:e.field.name})]})}import{twMerge as gn}from"tailwind-merge";import{jsx as Ct}from"react/jsx-runtime";function ht(e){let t=Xe(e.column?.advanced?.cols);return Ct("div",{className:"flex w-full flex-col gap-4",children:Ct("div",{className:gn("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{Fragment as yn}from"react";import{jsx as X,jsxs as bn}from"react/jsx-runtime";function Y(e){let{column:t,field:n}=e.components;return k(e.fields).map((r,o)=>bn(yn,{children:[Se(r)&&X(t,{column:r,children:X(Y,{...e,fields:r.fields})}),Ne(r)&&X(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}import{jsx as xn}from"react/jsx-runtime";function Ft(e){return n=>xn(Y,{...n,components:{column:ht,field:e}})}var St=Ft(At);import{jsx as U}from"react/jsx-runtime";function $(e){return U(Je,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:n})=>U(St,{disabled:t,fields:n,style:e.config.style,children:r=>U(lt,{...r,config:e.config,source:e.source,value:e.value})})})}import{Suspense as Tn}from"react";import{jsx as Nt}from"react/jsx-runtime";function Rn(e){return Nt(Tn,{fallback:Nt($,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}export{Rn as Fallback,$ as Form};
|
|
1
|
+
import{jsx as Pt}from"react/jsx-runtime";function K(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return Pt("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as wt}from"react/jsx-runtime";function R(e){return wt("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var S="input",W="input/email",q="input/number";var z="textarea",Z="radio",J="checkbox",Q="select",j="select/month",ee="select/year";var D="column";var te="label",_="value",E="options",M="email",ne="number",oe="password",re="tel",T="text",ie="aria-errormessage",le="aria-invalid",ae="data-invalid",ce="data-readonly",se="aria",de="data",ue="min",fe="max",me="minLength",pe="maxLength",b="$ref";var u="vertical",x="horizontal";function l(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function f(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function p(e){return typeof e=="string"}var Lt=/[^/]+$/;function ge(e,t=_){if(e!=null){if(f(e))return e;if(l(e)){let n=Dt(e,t);if(f(n))return n}}}function Dt(e,t){let n=g(e,t);if(f(n))return n}function g(e,t){if(!t||!l(e))return null;let n=t.split(".").filter(r=>r!=="");if(n.length===0)return null;let o=e;for(let r of n)if(l(o)&&r in o)o=o[r];else return null;return o}function ye(e,t={label:te,value:_}){return e.map(n=>{if(l(n)){let o=g(n,t.label),r=g(n,t.value);if(f(o)&&f(r))return{label:`${o}`,value:`${r}`}}return n})}function be(e=T){if(e){let t=e.match(Lt);if(t){let[n]=t;if(n!==S)return n.trim().toLowerCase()}}return T}var _t=/\[([^\]]+)\]\(([^)]+)\)/g;function A(e,t={}){if(p(e))return Mt(e,t);if(Array.isArray(e))return e.map(n=>A(n,t));if(l(e)){let n={};for(let o in e)n[o]=A(e[o],t);return n}return e}function C(e){return p(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>C(t)):l(e)?Object.values(e).some(t=>C(t)):!1}function Mt(e,t={}){return e.replace(/{([^}]+)}/g,(n,o)=>{let r=o.includes(".")?g(t,o):t[o];return f(r)?String(r):n})}function xe(e,t){if(!e||e.trim().length===0)return null;let n,o=0,r=!1,i=[];for(;(n=_t.exec(e))!==null;){let[a,m,kt]=n,N=n.index;r=!0,N>o&&i.push(e.substring(o,N));let Ot=t?t(N,kt,m):a;i.push(Ot),o=N+a.length}return r?(o<e.length&&i.push(e.substring(o)),i):e}var Re=e=>s(j)(e),Te=e=>s(ee)(e),d=s(J),Ae=s(S),y=s(Z),c=s(Q),Ce=s(z),he=s(T,M,oe,re),Vn=s(W,M),Fe=s(q,ne);function Ne(e){return y(e)||d(e)}function Se(e){return e.type===D}function Ee(e){return e.type!==D}function Ie(e){return c(e)||y(e)}function V(e){return e!=null&&e!==""}function s(...e){return t=>{let n=p(t.type)?t.type:void 0;return n?e.some(o=>n===o||n?.startsWith(`${o}/`)):!1}}function ke(e,t={}){if(c(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&l(n))return[n]}}function Oe(e){return y(e)||d(e)?x:e.advanced?.orientation??u}function Pe(e,t){let n=e.readonly??!1;return t||n}function we(e){if(y(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||l(t)&&!(b in t))return t}}function Le(e,t){let n=we(e);return n||ke(e,t)}function Vt(e,t){let n=l(t)&&e.name in t?t[e.name]:t;return ge(n,e.advanced?.entity)}function vt(e,t,n){return Ie(e)&&Array.isArray(n)?{...t,[E]:n}:t}function Gt(e,t,n){if(e.required&&!V(n)&&c(e)&&e.advanced?.preselected!==!1&&E in t){let o=t[E];if(Array.isArray(o)&&o.length===1)return o[0]}return n}function Xt(e,t){return c(e)&&Array.isArray(t)?ye(t,e.advanced?.options):t}function De(e,t,n,o){let r=Vt(e,o),i=Array.isArray(n)?Xt(e,n):n,a=vt(e,t,i),m=Gt(e,a,r);return{commonPropsWithOptions:a,defaultValue:m}}function _e(e,t){return d(e)?{defaultChecked:V(t)}:{defaultValue:t}}var Yt=/^#\/definition\//;function k(e=[],t){let n=I(e,t);return Array.isArray(n)?n.sort((o,r)=>Me(o)-Me(r)):[]}function I(e,t,n=new Map,o=new WeakSet){if(!Ut(t)||!e||typeof e!="object")return e;if(n.has(e))return n.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>I(i,t,n,o));if(b in e&&p(e[b])){let i=e[b].replace(Yt,""),a=g(t,i);return a!==null?I(a,t,n,o):e}let r={};for(let[i,a]of Object.entries(e))r[i]=I(a,t,n,o);return o.delete(e),n.set(e,r),r}function Ve(e){return Object.entries(e??{})}function Me(e){return e.order??Number.MAX_VALUE}function Ut(e){return e!==void 0&&l(e)&&Object.keys(e).length>0}function ve(e,t){let n={};for(let[o,r]of Ve(t))n[`${e}-${o}`]=r;return n}function Ge(e){return ve(se,e)}function Xe(e){return ve(de,e)}var Ye={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Ue={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Be(e,t=2){return Ye[e&&e in Ye?e:t]}function $e(e){if(e&&e in Ue)return Ue[e]}var Bt=/^\d+$/;function He(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Ke(e,t){return t>=e?Array.from({length:t-e+1},(n,o)=>{let r=e+o;return{value:r.toString(),label:r.toString()}}):[]}function v(){return new Date().getFullYear()}function G(e,t){if(typeof e=="number")return e;let n=t??v(),o=e.trim().toLowerCase();if(o.startsWith("current")){let r=o.match(/^current([+-])(\d+)$/);if(r){let[,i,a]=r,m=parseInt(a,10);if(!isNaN(m))return i==="+"?n+m:n-m}return n}return Bt.test(o)?parseInt(o,10):n}function O(e,t){return{...e,...t}}import{jsx as $t}from"react/jsx-runtime";function h(e){return xe(e,(t,n,o)=>$t("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:o},`${n}-${t}`))}import{Fragment as Ht,jsx as We,jsxs as Kt}from"react/jsx-runtime";function qe(e){return Kt(Ht,{children:[e.title&&We("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:h(e.title)}),e.description&&We("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:h(e.description)})]})}import{jsx as X,jsxs as Wt}from"react/jsx-runtime";function ze(e){let t=e.section.fields||[],{compact:n}=O(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?X(R,{compact:n,children:e.children}):Wt("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",id:e.section.id?.toString(),children:[X(qe,{description:e.section.description,title:e.section.title}),X(R,{compact:n,children:e.children})]})}import{Fragment as qt}from"react";import{jsx as Ze}from"react/jsx-runtime";function Je(){return Ze("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:Ze("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as F,jsxs as Qe}from"react/jsx-runtime";function je(e){let t=k(e.sections,e.definition);return F("div",{className:"h-full w-full",children:F("form",{noValidate:e.noValidate,action:e.action,children:Qe(R,{children:[t.map((n,o)=>Qe(qt,{children:[F(ze,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&F(Je,{})]},o)),e.control&&F(K,{isPending:e.isPending,children:e.control})]})})})}import{jsx as zt}from"react/jsx-runtime";function et(e){return zt("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as Zt}from"react/jsx-runtime";function P(e){let t=h(e.text);return t?Zt(et,{children:t}):null}import{twMerge as Jt}from"tailwind-merge";import{jsx as Qt,jsxs as jt}from"react/jsx-runtime";function tt(e){let t=y(e.field)||d(e.field);return jt("label",{"data-slot":"field-label","data-normal":t,className:Jt("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&Qt("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as nt,jsxs as en}from"react/jsx-runtime";function ot(e){let t=C(e.field.label)?A(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=C(e.field.description)?A(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return en("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[nt(tt,{field:e.field,children:t}),e.orientation===x&&nt(P,{text:n})]})}import{Fragment as tn,jsx as rt,jsxs as nn}from"react/jsx-runtime";function it(e){return nn(tn,{children:[e.field.name&&e.field.label&&rt(ot,{config:e.config,context:e.context,field:e.field,orientation:e.orientation}),e.children,e.orientation===u&&e.field.description&&rt(P,{text:e.field.description})]})}function lt(e,t){return e?t(e):null}import{jsx as at}from"react/jsx-runtime";function ct(e){let t=Le(e.field,e.value),{commonPropsWithOptions:n,defaultValue:o}=De(e.field,e.commonProps,t,e.value),r=_e(e.field,o);return lt(e.config.inputs[e.field.type],i=>at(it,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,children:at(i,{...e.ariaAttributes,...n,...e.dataAttributes,...r})}))}import{jsx as st}from"react/jsx-runtime";function dt(e){return!e.errors||e.errors.length===0?null:st("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,n)=>st("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}import{twMerge as on}from"tailwind-merge";import{jsx as rn}from"react/jsx-runtime";function w(e){let t=e.errors&&e.errors.length>0;return rn("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[ae]:"true"},...e.disabled&&{[ce]:"true"},"data-orientation":e.orientation,className:on("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","data-[clickable=true]:items-start",e.isCheckbox&&"flex-row-reverse!","data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",$e(e.cols),e.className),children:e.children})}import{twMerge as ln}from"tailwind-merge";import{jsx as an}from"react/jsx-runtime";function ut(e){return an(w,{...e,orientation:u,className:ln("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}import{twMerge as cn}from"tailwind-merge";import{jsx as sn}from"react/jsx-runtime";function ft(e){return sn(w,{...e,orientation:x,className:cn("gap-2 md:flex-row md:gap-4","[&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start","[&_[role=checkbox]]:mt-[1.5px]",e.isClickable&&"md:flex-col",!e.isClickable&&["md:justify-between","[&>*:not([data-slot=field-content])]:w-full","[&>*:not([data-slot=field-content])]:md:w-1/2","[&>*:not([data-slot=field-content])]:xl:w-2/5"]),children:e.children})}import{jsx as mt}from"react/jsx-runtime";function pt(e){let t=Ne(e.field),n=d(e.field);return e.orientation===u?mt(ut,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children}):mt(ft,{cols:e.cols,disabled:e.disabled,errors:e.errors,isCheckbox:n,isClickable:t,children:e.children})}var L=v();function gt(e){if(c(e))return dn(e)}function dn(e){if(Re(e))return He();if(Te(e)){let t=e.advanced?.length?.min??L,n=e.advanced?.length?.max??L+5;return Ke(G(t,L),G(n,L))}}function yt(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ae(e)?{...n,...un(e)}:c(e)?{...n,...fn(e)}:Ce(e)?{...n,...mn(e)}:n}function un(e){let t=be(e.type),n={...e,type:t};return{...bt(e),...pn(n),...he(n)?xt(n):{},type:t}}function fn(e){let t=gt(e);return t?{options:t}:{}}function mn(e){return{...bt(e),...xt(e)}}function bt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function pn(e){return Fe(e)?gn(e):{}}function xt(e){return Rt(e,{min:me,max:pe})}function gn(e){return Rt(e,{min:ue,max:fe})}function Rt(e,t){let n={},o=e.advanced?.length;return o&&(o.min!==void 0&&(n[t.min]=o.min),o.max!==void 0&&(n[t.max]=o.max)),n}function Tt(e,t){let n=Ge(e.advanced?.aria);return t&&t.length>0&&(n[le]="true",n[ie]=`${e.name}-error`),n}function At(e){return Xe(e.advanced?.data)}function Ct(e){if(!e.field.type)return null;let t=yt(e.field,e.disabled),n=At(e.field),o=Tt(e.field,e.errors),r={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:n,field:r,orientation:e.orientation})}import{jsx as Y,jsxs as yn}from"react/jsx-runtime";function ht(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:o}=O(e.style,{orientation:Oe(e.field)}),r=Pe(e.field,e.disabled);return yn("div",{className:"flex flex-col gap-3",children:[Y(pt,{cols:t,disabled:r,errors:n,field:e.field,orientation:o,children:Y(Ct,{disabled:r,errors:n,field:e.field,orientation:o,children:e.children})}),Y(dt,{errors:n,name:e.field.name})]})}import{twMerge as bn}from"tailwind-merge";import{jsx as Ft}from"react/jsx-runtime";function Nt(e){let t=Be(e.column?.advanced?.cols);return Ft("div",{className:"flex w-full flex-col gap-4",children:Ft("div",{className:bn("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{Fragment as xn}from"react";import{jsx as U,jsxs as Rn}from"react/jsx-runtime";function B(e){let{column:t,field:n}=e.components;return k(e.fields).map((o,r)=>Rn(xn,{children:[Se(o)&&U(t,{column:o,children:U(B,{...e,fields:o.fields})}),Ee(o)&&U(n,{disabled:e.disabled,field:o,style:e.style,children:e.children})]},r))}import{jsx as Tn}from"react/jsx-runtime";function St(e){return n=>Tn(B,{...n,components:{column:Nt,field:e}})}var Et=St(ht);import{jsx as $}from"react/jsx-runtime";function H(e){return $(je,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:n})=>$(Et,{disabled:t,fields:n,style:e.config.style,children:o=>$(ct,{...o,config:e.config,context:e.context,value:e.value})})})}import{Suspense as An}from"react";import{jsx as It}from"react/jsx-runtime";function Cn(e){return It(An,{fallback:It(H,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}export{Cn as Fallback,H as Form};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export * from './fetcher';
|
|
2
|
+
export * from './handle/proxy-event';
|
|
3
|
+
export * from './handle/source-event';
|
|
4
|
+
export * from './handle/state-event';
|
|
5
|
+
export * from './handle/value-event';
|
|
2
6
|
export * from './helper/input';
|
|
3
7
|
export * from './type';
|
|
4
8
|
export * from './util/attributes';
|
|
@@ -16,7 +20,3 @@ export * from './util/source';
|
|
|
16
20
|
export * from './util/string';
|
|
17
21
|
export * from './util/style';
|
|
18
22
|
export * from './util/url';
|
|
19
|
-
export * from './handle/proxy-event';
|
|
20
|
-
export * from './handle/source-event';
|
|
21
|
-
export * from './handle/state-event';
|
|
22
|
-
export * from './handle/value-event';
|
|
@@ -59,12 +59,17 @@ export type Column = {
|
|
|
59
59
|
fields: Array<Field>;
|
|
60
60
|
type: 'column' | (string & {});
|
|
61
61
|
} & Base;
|
|
62
|
-
export type Operator = 'eq' | 'neq' | 'in' | 'nin';
|
|
62
|
+
export type Operator = 'eq' | 'neq' | 'in' | 'nin' | 'gt' | 'gte' | 'lt' | 'lte';
|
|
63
63
|
export type Condition = {
|
|
64
64
|
field?: string;
|
|
65
65
|
operator?: Operator;
|
|
66
66
|
value: string | number | string[];
|
|
67
67
|
};
|
|
68
|
+
export type CustomValidation = {
|
|
69
|
+
field: string;
|
|
70
|
+
message?: string;
|
|
71
|
+
operator?: Operator;
|
|
72
|
+
};
|
|
68
73
|
export type FieldState = {
|
|
69
74
|
disabled?: boolean;
|
|
70
75
|
hidden?: boolean;
|
|
@@ -86,6 +91,12 @@ export type StateEvent = ActionEvent<'state'> & {
|
|
|
86
91
|
};
|
|
87
92
|
export type ChangeEvent = Array<SourceEvent | ValueEvent | StateEvent>;
|
|
88
93
|
export type Orientation = 'horizontal' | 'vertical';
|
|
94
|
+
export type Validation = {
|
|
95
|
+
custom?: CustomValidation | Array<CustomValidation>;
|
|
96
|
+
email?: string;
|
|
97
|
+
length?: Length<string>;
|
|
98
|
+
required?: string;
|
|
99
|
+
};
|
|
89
100
|
export type Field = CommonProps & {
|
|
90
101
|
advanced?: {
|
|
91
102
|
aria?: AriaAttributes;
|
|
@@ -104,11 +115,7 @@ export type Field = CommonProps & {
|
|
|
104
115
|
name: string;
|
|
105
116
|
readonly?: boolean;
|
|
106
117
|
type: string;
|
|
107
|
-
validation?:
|
|
108
|
-
required?: string;
|
|
109
|
-
email?: string;
|
|
110
|
-
length?: Length<string>;
|
|
111
|
-
};
|
|
118
|
+
validation?: Validation;
|
|
112
119
|
} & Base;
|
|
113
120
|
export type Length<T> = {
|
|
114
121
|
max?: T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const operators: Record<string, (current: unknown, value: unknown) => boolean>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { Input, Schemas } from '../type';
|
|
3
|
-
export declare function buildSchema(schemas: Schemas):
|
|
4
|
-
[x: string]: import("..").Schema;
|
|
5
|
-
}, z.core.$strip>;
|
|
2
|
+
import type { CustomValidation, Field, Input, Schemas, ZodSchema } from '../type';
|
|
3
|
+
export declare function buildSchema(schemas: Schemas, fields?: Field[]): ZodSchema;
|
|
6
4
|
export declare function flatten(error: z.ZodError<Record<string, unknown>>): Record<string, string[]>;
|
|
7
5
|
export declare function getSchema(input: Input): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
8
6
|
export declare function getEmail(input: Input): z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodPipe<z.ZodString, z.ZodEmail>> | z.ZodNullable<z.ZodUnion<[z.ZodPipe<z.ZodString, z.ZodEmail>, z.ZodLiteral<"">]>>;
|
|
@@ -12,3 +10,5 @@ export declare function getText(input: Input): z.ZodPipe<z.ZodTransform<unknown,
|
|
|
12
10
|
export declare function getNumber(input: Input): z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodCoercedNumber<unknown>> | z.ZodNullable<z.ZodCoercedNumber<unknown>>;
|
|
13
11
|
export declare function getYearSchema(input: Input): z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodCoercedNumber<unknown>> | z.ZodNullable<z.ZodCoercedNumber<unknown>>;
|
|
14
12
|
export declare function getMonthSchema(input: Input): z.ZodCoercedNumber<unknown> | z.ZodNullable<z.ZodCoercedNumber<unknown>>;
|
|
13
|
+
export declare function applyCustomValidation(schema: ZodSchema, fields?: Field[]): ZodSchema;
|
|
14
|
+
export declare function validateCustom(value: unknown, rules: CustomValidation | Array<CustomValidation>, getValue: (name: string) => unknown): string[];
|
|
@@ -5,6 +5,7 @@ export declare function FormContent<T extends Record<string, unknown> = Record<s
|
|
|
5
5
|
action?: (formData: F, schema?: ZodSchema) => Promise<FormState<T>>;
|
|
6
6
|
children?: Control;
|
|
7
7
|
config: Config;
|
|
8
|
+
context?: Record<string, unknown>;
|
|
8
9
|
definition?: Definition;
|
|
9
10
|
onSuccess?: (data: T) => void;
|
|
10
11
|
readOnly?: boolean;
|
|
@@ -5,6 +5,7 @@ export declare function Form<T extends Record<string, unknown> = Record<string,
|
|
|
5
5
|
action?: (formData: F, schema?: ZodSchema) => Promise<FormState<T>>;
|
|
6
6
|
children?: Control;
|
|
7
7
|
config: Config;
|
|
8
|
+
context?: Record<string, unknown>;
|
|
8
9
|
definition?: Definition;
|
|
9
10
|
onSuccess?: (data: T) => void;
|
|
10
11
|
readOnly?: boolean;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { type AriaAttributes, type CommonProps, type DataAttributes, type Field, type Nullable, type Schema } from '@luna-form/core';
|
|
1
|
+
import { type AriaAttributes, type CommonProps, type DataAttributes, type Field, type Nullable, type Orientation, type Schema } from '@luna-form/core';
|
|
2
2
|
import type { Config } from '../../type';
|
|
3
3
|
export declare function Input(props: Readonly<{
|
|
4
4
|
ariaAttributes?: AriaAttributes;
|
|
5
5
|
commonProps: CommonProps;
|
|
6
6
|
config: Config;
|
|
7
|
+
context?: Record<string, unknown>;
|
|
7
8
|
dataAttributes?: DataAttributes;
|
|
8
9
|
field: Field;
|
|
9
|
-
onMount: (name: string, schema: Schema) => void;
|
|
10
|
+
onMount: (name: string, schema: Schema, field: Field) => void;
|
|
10
11
|
onUnmount: (name: string) => void;
|
|
12
|
+
orientation?: Orientation;
|
|
11
13
|
value?: Nullable<Record<string, unknown>>;
|
|
12
14
|
}>): import("react").ReactNode;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type DataSource, type Nullable } from '@luna-form/core';
|
|
2
2
|
import type { Config } from '../../type';
|
|
3
|
-
export declare function useFetch<T>(dataSource: Nullable<DataSource | T[]> | undefined, config: Config, disabled?: boolean):
|
|
3
|
+
export declare function useFetch<T>(dataSource: Nullable<DataSource | T[]> | undefined, config: Config, disabled?: boolean): Nullable<T[]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FormStateError, type Nullable, type Schemas, type ZodSchema } from '@luna-form/core';
|
|
1
|
+
import { type Field, type FormStateError, type Nullable, type Schemas, type ZodSchema } from '@luna-form/core';
|
|
2
2
|
export type FormState<T> = {
|
|
3
3
|
data: Nullable<T>;
|
|
4
4
|
error: Nullable<FormStateError>;
|
|
@@ -9,4 +9,4 @@ export type FormActionOptions<T> = {
|
|
|
9
9
|
preserveValues?: boolean;
|
|
10
10
|
validation?: boolean;
|
|
11
11
|
};
|
|
12
|
-
export declare function useFormState<T, F = Record<string, unknown>>(getSchema: () => Schemas, action?: (formData: F, schema?: ZodSchema) => Promise<FormState<T>>, options?: FormActionOptions<T>): readonly [(payload: FormData) => void, FormState<T>, boolean];
|
|
12
|
+
export declare function useFormState<T, F = Record<string, unknown>>(getSchema: () => readonly [Schemas, Field[]], action?: (formData: F, schema?: ZodSchema) => Promise<FormState<T>>, options?: FormActionOptions<T>): readonly [(payload: FormData) => void, FormState<T>, boolean];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Field, Schema } from '@luna-form/core';
|
|
2
|
-
export declare function useInput(field: Field, onMount: (name: string, schema: Schema) => void, onUnmount: (name: string) => void):
|
|
2
|
+
export declare function useInput(field: Field, onMount: (name: string, schema: Schema, field: Field) => void, onUnmount: (name: string) => void): import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Schema, Schemas } from '@luna-form/core';
|
|
2
|
-
export declare function useSchema(): readonly [() => Schemas, (name: string, schema: Schema) => void, (name: string) => void];
|
|
1
|
+
import type { Field, Schema, Schemas } from '@luna-form/core';
|
|
2
|
+
export declare function useSchema(): readonly [() => readonly [Schemas, Field[]], (name: string, schema: Schema, field: Field) => void, (name: string) => void];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function useTimeout():
|
|
1
|
+
export declare function useTimeout(): (callback: () => void, delay: number) => void;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { type DataSource } from '@luna-form/core';
|
|
2
|
-
export declare const sourceAtom: import("jotai").PrimitiveAtom<Record<string, Record<string, DataSource>>> & {
|
|
3
|
-
init: Record<string, Record<string, DataSource>>;
|
|
4
|
-
};
|
|
5
2
|
export declare const reportSourceAtom: import("jotai-family").AtomFamily<string, import("jotai").WritableAtom<DataSource | undefined, [target: string, value: DataSource | undefined], void>>;
|
|
6
3
|
export declare const clearInputSourceAtom: import("jotai").WritableAtom<null, [contributorNames: string[]], void> & {
|
|
7
4
|
init: null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Orientation } from '@luna-form/core';
|
|
2
|
-
export
|
|
2
|
+
export declare function FieldBase(props: Readonly<{
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
className?: string;
|
|
5
5
|
cols?: number;
|
|
@@ -8,5 +8,4 @@ export type FieldBaseProps = Readonly<{
|
|
|
8
8
|
isCheckbox?: boolean;
|
|
9
9
|
isClickable?: boolean;
|
|
10
10
|
orientation: Orientation;
|
|
11
|
-
}
|
|
12
|
-
export declare function FieldBase(props: FieldBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Children } from '../../type';
|
|
2
|
-
import type { Field } from '@luna-form/core';
|
|
2
|
+
import type { Field, Orientation } from '@luna-form/core';
|
|
3
3
|
export declare function InputBase(props: Readonly<{
|
|
4
4
|
children: Children;
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
errors?: string[];
|
|
7
7
|
field: Field;
|
|
8
|
+
orientation?: Orientation;
|
|
8
9
|
}>): import("react").ReactNode;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { type Field } from '@luna-form/core';
|
|
1
|
+
import { type Field, type Orientation } from '@luna-form/core';
|
|
2
|
+
import type { Config } from '../type';
|
|
2
3
|
export declare function InputGroup(props: Readonly<{
|
|
3
4
|
children: React.ReactNode;
|
|
5
|
+
config?: Config;
|
|
6
|
+
context?: Record<string, unknown>;
|
|
4
7
|
field: Field;
|
|
8
|
+
orientation?: Orientation;
|
|
5
9
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type Field, type Orientation } from '@luna-form/core';
|
|
2
|
+
import type { Config } from '../type';
|
|
2
3
|
export declare function InputLabel(props: Readonly<{
|
|
4
|
+
config?: Config;
|
|
5
|
+
context?: Record<string, unknown>;
|
|
3
6
|
field: Field;
|
|
4
|
-
orientation
|
|
7
|
+
orientation?: Orientation;
|
|
5
8
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Config } from '../../type';
|
|
2
|
-
import type { Definition, Sections
|
|
2
|
+
import type { Definition, Sections } from '@luna-form/core';
|
|
3
3
|
export declare function Form(props: Readonly<{
|
|
4
4
|
children?: React.ReactNode;
|
|
5
5
|
config: Config;
|
|
6
|
+
context?: Record<string, unknown>;
|
|
6
7
|
definition?: Definition;
|
|
7
8
|
readOnly?: boolean;
|
|
8
9
|
sections: Sections;
|
|
9
|
-
source?: Source;
|
|
10
10
|
value?: Record<string, unknown>;
|
|
11
11
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { type AriaAttributes, type CommonProps, type DataAttributes, type Field, type
|
|
1
|
+
import { type AriaAttributes, type CommonProps, type DataAttributes, type Field, type Orientation } from '@luna-form/core';
|
|
2
2
|
import type { Config } from '../../type';
|
|
3
3
|
export declare function Input(props: Readonly<{
|
|
4
4
|
ariaAttributes?: AriaAttributes;
|
|
5
5
|
commonProps: CommonProps;
|
|
6
6
|
config: Config;
|
|
7
|
+
context?: Record<string, unknown>;
|
|
7
8
|
dataAttributes?: DataAttributes;
|
|
8
9
|
field: Field;
|
|
9
|
-
|
|
10
|
+
orientation?: Orientation;
|
|
10
11
|
value?: Record<string, unknown>;
|
|
11
12
|
}>): import("react").ReactNode;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AriaAttributes, BaseConfig, CommonProps, DataAttributes, Field, Fields, FormStateError } from '@luna-form/core';
|
|
1
|
+
import type { AriaAttributes, BaseConfig, CommonProps, DataAttributes, Field, Fields, FormStateError, Orientation } from '@luna-form/core';
|
|
2
2
|
export type Slot = (props: {
|
|
3
3
|
disabled?: boolean;
|
|
4
4
|
fields?: Fields;
|
|
@@ -11,6 +11,7 @@ export type Children = (props: {
|
|
|
11
11
|
commonProps: CommonProps;
|
|
12
12
|
dataAttributes?: DataAttributes;
|
|
13
13
|
field: Field;
|
|
14
|
+
orientation?: Orientation;
|
|
14
15
|
}) => React.ReactNode;
|
|
15
16
|
export type InputConfig<T extends React.ElementType> = {
|
|
16
17
|
types: string | string[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-luna-form",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "A React library for building forms based on JSON",
|
|
5
5
|
"main": "./dist/client/cjs/index.js",
|
|
6
6
|
"module": "./dist/client/esm/index.js",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"zod": "^4.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/react": "19.2.
|
|
31
|
+
"@types/react": "19.2.10",
|
|
32
32
|
"@types/react-dom": "19.2.3",
|
|
33
33
|
"eslint-plugin-react": "7.37.5",
|
|
34
34
|
"eslint-plugin-react-hooks": "7.0.1",
|
|
35
35
|
"eslint-plugin-react-refresh": "0.4.26",
|
|
36
|
-
"@luna-form/core": "0.0.
|
|
36
|
+
"@luna-form/core": "0.0.18"
|
|
37
37
|
},
|
|
38
38
|
"license": "Apache-2.0",
|
|
39
39
|
"repository": {
|