react-luna-form 0.0.22 → 0.0.23
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
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var oo=Object.create;var ye=Object.defineProperty;var io=Object.getOwnPropertyDescriptor;var ao=Object.getOwnPropertyNames;var lo=Object.getPrototypeOf,so=Object.prototype.hasOwnProperty;var co=(e,t)=>{for(var n in t)ye(e,n,{get:t[n],enumerable:!0})},dt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ao(t))!so.call(e,o)&&o!==n&&ye(e,o,{get:()=>t[o],enumerable:!(r=io(t,o))||r.enumerable});return e};var uo=(e,t,n)=>(n=e!=null?oo(lo(e)):{},dt(t||!e||!e.__esModule?ye(n,"default",{value:e,enumerable:!0}):n,e)),fo=e=>dt(ye({},"__esModule",{value:!0}),e);var Ti={};co(Ti,{Form:()=>zr});module.exports=fo(Ti);var Ye=require("react/jsx-runtime");function ft(e){return!e.errors||e.errors.length===0?null:(0,Ye.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,Ye.jsx)("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var be="input",mt="input/email",pt="input/number";var gt="textarea",yt="radio",bt="checkbox",xt="select",ht="select/month",Tt="select/year";var Xe="column";var Rt="label",H="value",xe="options",He="email",St="number",At="password",Ct="tel",ie="text",Et="aria-errormessage",Ft="aria-invalid",Nt="data-invalid",kt="data-readonly",vt="aria",It="data",he="min",Te="max",wt="minLength",Pt="maxLength",q="$ref";var Ot="source",Vt="state",Re="http://luna.internal",w="vertical",$="horizontal";function d(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function Se(e){return e==null||e===""}function P(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function E(e){return typeof e=="string"}function Dt(e){return d(e)&&"url"in e}var mo=/[^/]+$/;function Lt(e,t=[],n=H){if(Array.isArray(t))return t.find(r=>{let o=qe(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function qe(e,t=H){if(e!=null){if(P(e))return e;if(d(e)){let n=po(e,t);if(P(n))return n}}}function po(e,t){let n=T(e,t);if(P(n))return n}function Mt(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||!d(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(d(r)&&o in r)r=r[o];else return null;return r}function _t(e,t={label:Rt,value:H}){return e.map(n=>{if(d(n)){let r=T(n,t.label),o=T(n,t.value);if(P(r)&&P(o))return{label:`${r}`,value:`${o}`}}return n})}function Ut(e=ie){if(e){let t=e.match(mo);if(t){let[n]=t;if(n!==be)return n.trim().toLowerCase()}}return ie}function Bt(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 go=/\[([^\]]+)\]\(([^)]+)\)/g;function R(e,t={}){if(E(e))return yo(e,t);if(Array.isArray(e))return e.map(n=>R(n,t));if(d(e)){let n={};for(let r in e)n[r]=R(e[r],t);return n}return e}function D(e){return E(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>D(t)):d(e)?Object.values(e).some(t=>D(t)):!1}function yo(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?T(t,r):t[r];return P(o)?String(o):n})}function Gt(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=go.exec(e))!==null;){let[a,l,s]=n,c=n.index;o=!0,c>r&&i.push(e.substring(r,c));let u=t?t(c,s,l):a;i.push(u),r=c+a.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var ae={error:(...e)=>{$e()&&!Ze()&&Ae().error("[Luna Form]",...e)},warn:(...e)=>{$e()&&!Ze()&&Ae().warn("[Luna Form]",...e)},info:(...e)=>{$e()&&!Ze()&&Ae().info("[Luna Form]",...e)}},$e=()=>typeof Ae()<"u",Ze=()=>!0,Ae=()=>globalThis.console;function Yt(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===H&&n.push(i),i.action===Ot&&r.push(i),i.action===Vt&&o.push(i)}),t({sources:r,states:o,values:n})}function Xt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(Dt(i)){let a=R(i.url,e),l=i.body?R(i.body,e):i.body;n(o,{...i,url:a,body:l})}})}var le={eq:Ro,gt:Eo,gte:Fo,in:Ao,lt:No,lte:ko,neq:So,nin:Co},bo=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,Ht=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function xo(e){return typeof e=="string"&&bo.test(e)}function ho(e){return typeof e=="string"&&Ht.test(e)}function To(e){let t=e.match(Ht);if(t){let[,n,r,o,i,a,l]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(a??0),Number(l??0)).getTime()}return NaN}function O(e){return xo(e)?new Date(e).getTime():ho(e)?To(e):Number(e)}function Ro(e,t){return e===t}function So(e,t){return e!==t}function Ao(e,t){return Array.isArray(t)&&t.includes(String(e))}function Co(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Eo(e,t){return O(e)>O(t)}function Fo(e,t){return O(e)>=O(t)}function No(e,t){return O(e)<O(t)}function ko(e,t){return O(e)<=O(t)}function qt(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:a}=r;if(!e){n(o);return}let l=vo(e,a);n(o,l?i:void 0)})}function vo(e,t){if(t===void 0)return!0;if(E(t))return We(e,"value")===t;if(Array.isArray(t)){let n=We(e,"value");return t.includes(String(n))}return Io(e,t)}function Io(e=null,t){let n=We(e,t.field??"value"),{operator:r="eq",value:o}=t,i=le[r];return i?i(n,o):!1}function We(e,t){return d(e)?t.includes(".")?T(e,t):e[t]:e}function $t(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?R(i,e):void 0)})})}var Ce=e=>S(ht)(e),Ee=e=>S(Tt)(e),g=S(bt),Ke=S(be),F=S(yt),N=S(xt),ze=S(gt),Zt=S(ie,He,At,Ct),Wt=S(mt,He),Fe=S(pt,St);function Ne(e){return F(e)||g(e)}function Kt(e){return e.type===Xe}function zt(e){return e.type!==Xe}function jt(e){return N(e)||F(e)}function Jt(e){return Ke(e)||ze(e)}function se(e){return e!=null&&e!==""}function S(...e){return t=>{let n=E(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Qt(e,t={}){if(N(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&d(n))return[n]}}function en(e){return F(e)||g(e)?$:e.advanced?.orientation??w}function tn(e){return g(e)?e.advanced?.reverse!==!1:!1}function nn(e,t){let n=e.readonly??!1;return t||n}function rn(e){if(F(e)||N(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||d(t)&&!(q in t))return t}}var wo=/^\d+$/;function on(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function an(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 je(){return new Date().getFullYear()}function Je(e,t){if(typeof e=="number")return e;let n=t??je(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,a]=o,l=parseInt(a,10);if(!isNaN(l))return i==="+"?n+l:n-l}return n}return wo.test(r)?parseInt(r,10):n}var ke=je();function Po(e){if(N(e))return Oo(e)}function Oo(e){if(Ce(e))return on();if(Ee(e)){let t=e.advanced?.length?.min??ke,n=e.advanced?.length?.max??ke+5;return an(Je(t,ke),Je(n,ke))}}function ln(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ke(e)?{...n,...Vo(e)}:N(e)?{...n,...Do(e)}:ze(e)?{...n,...Lo(e)}:n}function Vo(e){let t=Ut(e.type),n={...e,type:t};return{...sn(e),...Mo(n),...Zt(n)?cn(n):{},type:t}}function Do(e){let t=Po(e);return t?{options:t}:{}}function Lo(e){return{...sn(e),...cn(e)}}function sn(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function Mo(e){return Fe(e)?_o(e):{}}function cn(e){return un(e,{min:wt,max:Pt})}function _o(e){return un(e,{min:he,max:Te})}function un(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 dn(e,t){let n=rn(e);return n||Qt(e,t)}function Uo(e,t){let n=d(t)&&e.name in t?t[e.name]:t;return qe(n,e.advanced?.entity)}function Bo(e,t,n){return jt(e)&&Array.isArray(n)?{...t,[xe]:n}:t}function Go(e,t,n){if(e.required&&!se(n)&&N(e)&&e.advanced?.preselected!==!1&&xe in t){let r=t[xe];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function Yo(e,t){return N(e)&&Array.isArray(t)?_t(t,e.advanced?.options):t}function fn(e,t,n,r){let o=Uo(e,r),i=Array.isArray(n)?Yo(e,n):n,a=Bo(e,t,i),l=Go(e,a,o);return{commonPropsWithOptions:a,defaultValue:l}}function mn(e,t){return g(e)?{checked:se(t)?t:!1}:{value:t??""}}var Xo=/^#\/definition\//;function Ie(e=[],t){let n=ve(e,t);return Array.isArray(n)?n.sort((r,o)=>pn(r)-pn(o)):[]}function ve(e,t,n=new Map,r=new WeakSet){if(!Ho(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=>ve(i,t,n,r));if(q in e&&E(e[q])){let i=e[q].replace(Xo,""),a=T(t,i);return a!==null?ve(a,t,n,r):e}let o={};for(let[i,a]of Object.entries(e))o[i]=ve(a,t,n,r);return r.delete(e),n.set(e,o),o}function gn(e){return Object.entries(e??{})}function pn(e){return e.order??Number.MAX_VALUE}function Ho(e){return e!==void 0&&d(e)&&Object.keys(e).length>0}function yn(e,t){let n={};for(let[r,o]of gn(t))n[`${e}-${r}`]=o;return n}function qo(e){return yn(vt,e)}function $o(e){return yn(It,e)}function bn(e,t){let n=qo(e.advanced?.aria);return t&&t.length>0&&(n[Ft]="true",n[Et]=`${e.name}-error`),n}function xn(e){return $o(e.advanced?.data)}var hn={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Tn={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Rn(e,t=2){return hn[e&&e in hn?e:t]}function Sn(e){if(e&&e in Tn)return Tn[e]}var f=require("zod");function m(e,t){return e?t?t[e]??e:e:""}var Zo=[[Fe,Jo],[Wt,Wo],[Ee,Qo],[Ce,ei],[g,Ko],[F,zo]];function Cn(e,t=[],n){let r=f.z.object(e);return t.length===0?r:oi(r,t,n)}function En(e){let t={},n=f.z.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function Fn(e,t){for(let[n,r]of Zo)if(n(e))return r(e,t);return jo(e,t)}function Wo(e,t){let n=f.z.string().trim();if(e.required){let r=Z(e,t),o=n.min(1,r).pipe(An(e,t));return f.z.preprocess(i=>Se(i)?"":i,o)}return n.pipe(An(e,t)).or(f.z.literal("")).nullable()}function Ko(e,t){let n=f.z.coerce.boolean();return e.required?(n=n.refine(r=>r===!0,{message:Z(e,t)}),f.z.preprocess(r=>r===null?!1:r,n)):n.nullable()}function zo(e,t){let n=f.z.coerce.string();return e.required?(n=n.min(1,Z(e,t)),f.z.preprocess(r=>Se(r)?"":r,n)):n.or(f.z.literal("")).nullable()}function jo(e,t){let n=f.z.coerce.string().trim();return n=Nn(n,e,t),e.required?(n=kn(n,e,t),f.z.preprocess(r=>Se(r)?"":r,n)):n.nullable()}function Jo(e,t){let n=f.z.coerce.number().int();return n=Nn(n,e,t),e.required?(n=kn(n,e,t),f.z.preprocess(r=>r===null?void 0:r,n)):n.nullable()}function Qo(e,t){return e.required?f.z.preprocess(ti,f.z.coerce.number({message:Z(e,t)}).int()):f.z.coerce.number().int().nullable()}function ei(e,t){let n=Z(e,t),r=f.z.coerce.number().int().min(1,n).max(12,n);return e.required?r:r.nullable()}function ti(e){return e===null||e===""?void 0:e}function An(e,t){let n=e.validation?.email?m(e.validation?.email,t):void 0;return f.z.email(n)}function Nn(e,t,n){return e=ni(e,t,n),e=ri(e,t,n),e}function kn(e,t,n){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,Z(t,n)):e}var ni=(e,t,n)=>vn(e,t,he,n),ri=(e,t,n)=>vn(e,t,Te,n);function vn(e,t,n,r){let o=t.advanced?.length?.[n];if(o!==void 0){let i=t.validation?.length?.[n]?m(t.validation?.length?.[n],r):void 0;return e[n](o,i)}return e}function oi(e,t=[],n){let r=ai(t);return r.length===0?e:e.superRefine((o,i)=>{for(let{name:a,rule:l}of r)if(!ii(o,a,l)){let s=m(l.message,n);i.addIssue({code:"custom",message:s,path:[a]})}})}function ii(e,t,n){let r=n.operator??"eq",o=le[r];return o?o(e[t],e[n.field]):!1}function ai(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 In(e,t,n,r){let o=[],i=Array.isArray(t)?t:[t];for(let a of i){let l=a.operator??"eq",s=le[l];if(s&&!s(e,n(a.field))&&a.message){let c=m(a.message,r);o.push(c)}}return o}function Z(e,t){return e.validation?.required?m(e.validation?.required,t):void 0}function wn(e,t){if(!t||!si(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||li(r);return t.some(a=>!(a.protocol&&a.protocol!==r||a.hostname&&a.hostname!==o||a.port!==void 0&&String(a.port)!==i))}catch{return!1}}function li(e){return e==="https"?"443":"80"}function si(e){return/^(https?:)?\/\//.test(e)}function Pn(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,Re);new URL(t,Re).searchParams.forEach((i,a)=>{n.searchParams.set(a,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(Re,""):o}catch{return t||e}}function On(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=Pn(t.url,n.url),o=ci(t,n),i=ui(t,n);return{...t,...n,url:r,body:o,headers:i}})}function ci(e,t){return d(t.body)&&d(e?.body)?{...e.body,...t.body}:t.body??e?.body}function ui(e,t){return d(t.headers)&&d(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function we(e,t){return{...e,...t}}var Vn=require("tailwind-merge"),Dn=require("react/jsx-runtime");function Pe(e){let t=e.errors&&e.errors.length>0;return(0,Dn.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Nt]:"true"},...e.disabled&&{[kt]:"true"},"data-orientation":e.orientation,className:(0,Vn.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&&(e.isReversed?"flex-row-reverse!":"flex-row!"),"data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",e.className),children:e.children})}var Ln=require("tailwind-merge"),_n=require("react/jsx-runtime");function Mn(e){return(0,_n.jsx)(Pe,{...e,orientation:w,className:(0,Ln.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var Un=require("tailwind-merge"),Gn=require("react/jsx-runtime");function Bn(e){return(0,Gn.jsx)(Pe,{...e,orientation:$,className:(0,Un.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 Qe=require("react/jsx-runtime");function Yn(e){let t=Ne(e.field),n=g(e.field),r=tn(e.field);return e.orientation===w?(0,Qe.jsx)(Mn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children}):(0,Qe.jsx)(Bn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children})}function Xn(e){if(!e.field.type)return null;let t=ln(e.field,e.disabled),n=xn(e.field),r=bn(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 Hn=require("tailwind-merge"),W=require("react/jsx-runtime");function qn(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=we(e.style,{orientation:en(e.field)}),o=nn(e.field,e.disabled);return(0,W.jsxs)("div",{className:(0,Hn.twMerge)("flex flex-col gap-3",Sn(t)),children:[(0,W.jsx)(Yn,{disabled:o,errors:n,field:e.field,orientation:r,children:(0,W.jsx)(Xn,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),(0,W.jsx)(ft,{errors:n,name:e.field.name})]})}var V=require("jotai"),et=require("jotai-family"),Oe=require("fast-equals");function di(e){return(0,et.atomFamily)(t=>(0,V.atom)(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let a=i[t];(!a||!(0,Oe.deepEqual)(a,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:a,...l}=i;r(e,l)}}))}function fi(e){return(0,V.atom)(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function mi(e){return(0,V.atom)(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);a&&n(e,i)})}function pi(e){return(0,V.atom)(null,(t,n,r)=>{let o=t(e);(0,Oe.deepEqual)(o,r)||n(e,r)})}function $n(e,t={}){let{merge:n,validateTarget:r}=t;return(0,et.atomFamily)(o=>(0,V.atom)(i=>{let a=i(e)[o];if(a&&n)return n(Object.values(a))},(i,a,l,s)=>{if(r&&!r(l))return;let c=i(e),u={...c[l]??{}};if(s!=null){let b=u[o];(!b||!(0,Oe.deepEqual)(b,s))&&(u[o]=s,a(e,{...c,[l]:u}))}else if(u[o])if(delete u[o],Object.keys(u).length===0){let{[l]:b,...I}=c;a(e,I)}else a(e,{...c,[l]:u})}))}function Zn(e){return(0,V.atom)(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);for(let l in i){let s={...i[l]},c=!1;for(let u of r)s[u]&&(delete s[u],c=!0,a=!0);c&&(Object.keys(s).length===0?delete i[l]:i[l]=s)}a&&n(e,i)})}function K(e={}){let t=(0,V.atom)(e);return{atom:t,clearAll:fi(t),clear:mi(t),bulkReport:pi(t),report:di(t)}}var tt=K(),Wn=tt.clear,Kn=tt.bulkReport,Ve=tt.report;var zn=require("jotai"),Jn=require("react/jsx-runtime");function jn(e){return n=>{let r=(0,zn.useAtomValue)(Ve(n.field.name));return(0,Jn.jsx)(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}var Qn=K(),er=Qn.atom,tr=Qn.report;var nr=require("jotai"),or=require("react/jsx-runtime");function rr(e){return n=>{let r=(0,nr.useAtomValue)(tr(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 ir=rr(jn(qn));var lr=require("react/jsx-runtime");function ar(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,lr.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var sr=require("react/jsx-runtime");function ce(e){return(0,sr.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 cr=require("react/jsx-runtime");function ue(e){return Gt(e,(t,n,r)=>(0,cr.jsx)("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}var L=require("react/jsx-runtime");function ur(e){return(0,L.jsxs)(L.Fragment,{children:[e.title&&(0,L.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:ue(e.title)}),e.description&&(0,L.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:ue(e.description)})]})}var z=require("react/jsx-runtime");function dr(e){let t=e.section.fields||[],{compact:n}=we(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,z.jsx)(ce,{compact:n,children:e.children}):(0,z.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,z.jsx)(ur,{description:e.section.description,title:e.section.title}),(0,z.jsx)(ce,{compact:n,children:e.children})]})}var mr=require("react");var nt=require("react/jsx-runtime");function fr(){return(0,nt.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,nt.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var k=require("react/jsx-runtime");function pr(e){let t=Ie(e.sections,e.definition);return(0,k.jsx)("div",{className:"h-full w-full",children:(0,k.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,k.jsxs)(ce,{children:[t.map((n,r)=>(0,k.jsxs)(mr.Fragment,{children:[(0,k.jsx)(dr,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&(0,k.jsx)(fr,{})]},r)),e.control&&(0,k.jsx)(ar,{isPending:e.isPending,children:e.control})]})})})}var yr=require("react/jsx-runtime");function gr(e){return(0,yr.jsx)("p",{className:"-mt-2 text-xs leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var br=require("react/jsx-runtime");function De(e){let t=ue(e.text);return t?(0,br.jsx)(gr,{children:t}):null}var xr=require("tailwind-merge"),Le=require("react/jsx-runtime");function hr(e){let t=e.style?.showOptionalLabel??!0,n=F(e.field)||g(e.field);return(0,Le.jsxs)("label",{"data-slot":"field-label","data-normal":n,className:(0,xr.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,t&&!e.field.required&&(0,Le.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:m("(Optional)",e.translations)})]})}var de=require("react/jsx-runtime");function Tr(e){let t=D(e.field.label)?R(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=D(e.field.description)?R(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return(0,de.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,de.jsx)(hr,{field:e.field,style:e.config?.style,translations:e.translations,children:m(t,e.translations)}),e.orientation===$&&(0,de.jsx)(De,{text:m(n,e.translations)})]})}var M=require("react/jsx-runtime");function Rr(e){return(0,M.jsxs)(M.Fragment,{children:[e.field.name&&e.field.label&&(0,M.jsx)(Tr,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations}),e.children,e.orientation===w&&e.field.description&&(0,M.jsx)(De,{text:m(e.field.description,e.translations)})]})}function Me(e,t){return e?t(e):null}var y=require("react");var Sr=require("jotai");var gi=e=>{let t=On(e);if(t)return t},yi=e=>e.trim()!=="",Ar=(0,Sr.atom)({}),Cr=$n(Ar,{merge:gi,validateTarget:yi}),Er=Zn(Ar);var kr=require("jotai");var Fr=uo(require("swr"),1);function Nr(e=null,t,n=!1){let{data:r,error:o}=(0,Fr.default)(bi(e,t,n),t.fetcher.provider);if(o&&ae.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return Mt(r,e.namespace)}return null}function bi(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!D(e.url)){if(wn(e.url,t.fetcher.remotePatterns))return e;ae.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function vr(e,t,n){let r=dn(e,n),[o,i]=(0,kr.useAtom)(Cr(e.name));return[Nr(o??r,t,e.disabled),i]}var _=require("react");function Ir(e,t,n,r){let{name:o}=e,i=(0,_.useMemo)(()=>Fn(e,r),[e,r]),a=(0,_.useEffectEvent)(s=>{s&&t(s,i,e)}),l=(0,_.useEffectEvent)(s=>{s&&n(s)});return(0,_.useEffect)(()=>(a(o),()=>{l(o)}),[o]),i}var Q=require("jotai");var j=require("react");function wr(){let e=(0,j.useRef)(null);(0,j.useEffect)(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return(0,j.useCallback)((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var _e=K(),Pr=_e.atom,Or=_e.clearAll,Vr=_e.clear,Ue=_e.report;var Dr=require("jotai"),J=require("react");function Lr(e,t){let{name:n}=e,r=(0,J.useRef)(!1),[o,i]=(0,Dr.useAtom)(Ue(n));(0,J.useEffect)(()=>{if(!t||!(n in t))return;let l=t[n];se(l)&&(r.current=!0,i(l))},[n,t,i]);let a=(0,J.useCallback)(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:a,value:o}}var rt=require("react/jsx-runtime");function Mr(e){let t=e.field.advanced?.entity,n=(0,Q.useStore)(),r=wr(),[,o]=(0,y.useTransition)(),{setValue:i,shouldSkipOnChange:a,value:l}=Lr(e.field,e.value),s=(0,y.useRef)(l);s.current=l;let c=(0,y.useRef)(e.translations);c.current=e.translations;let u=Jt(e.field),b=Ne(e.field),I=(0,Q.useSetAtom)(Pr),te=(0,Q.useSetAtom)(er),me=(0,Q.useSetAtom)(Ve(e.field.name)),[ne,U]=vr(e.field,e.config,l),C=Ir(e.field,e.onMount,e.onUnmount,e.translations),re=m(e.commonProps.placeholder,e.translations),x={...e.commonProps,placeholder:re},{commonPropsWithOptions:jr,defaultValue:Jr}=fn(e.field,x,ne,l),ct=(0,y.useRef)(null);ct.current=p=>{i(p),e.onValueChange&&e.onValueChange({name:e.field.name,value:p})};let Qr=mn(e.field,Jr),pe=(0,y.useCallback)(p=>{let B=C.safeParse(p).error?.issues.map(oe=>oe.message)??[],G=e.field.validation?.custom,Ge=G?In(p,G,oe=>n.get(Ue(oe)),c.current):[];me([...B,...Ge])},[e.field.validation?.custom,C,me,n]),ut=(0,y.useCallback)((p,h)=>{if(u){r(()=>{h({value:p})},500);return}let B=Lt(p,ne,t);h(B)},[ne,t,u,r]),eo=(0,y.useCallback)(p=>{let h=p.target.value;if(a()&&(!u||h===s.current))return;ct.current?.(h),e.config.validation.change&&pe(h);let B=e.field.event?.change;B&&ut(h,G=>{Yt(B,({sources:Ge,states:oe,values:no})=>{o(()=>{Xt(G,Ge,(Y,X)=>U(Y,X)),qt(G,oe,(Y,X)=>{te(ge=>{if(X)return{...ge,[Y]:X};let{[Y]:Ri,...ro}=ge;return ro})}),$t(G,no,(Y,X)=>{I(ge=>({...ge,[Y]:X}))})})})})},[ut,u,e.config.validation.change,e.field.event?.change,te,U,I,a,pe]),to=(0,y.useCallback)(p=>{if(!b){let h=p.target.value;e.config.validation.blur&&pe(h)}},[b,e.config.validation.blur,pe]);return Me(e.config.inputs[e.field.type],p=>(0,rt.jsx)(Rr,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations,children:(0,rt.jsx)(p,{...jr,...e.ariaAttributes,...e.dataAttributes,...Qr,onBlur:to,onChange:eo})}))}var _r=require("tailwind-merge"),ot=require("react/jsx-runtime");function Ur(e){let t=Rn(e.column?.advanced?.cols);return(0,ot.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,ot.jsx)("div",{className:(0,_r.twMerge)("grid grid-cols-1 gap-3 sm:gap-4",t),children:e.children})})}var Br=require("react"),ee=require("react/jsx-runtime");function it(e){let{column:t,field:n}=e.components;return Ie(e.fields).map((r,o)=>(0,ee.jsxs)(Br.Fragment,{children:[Kt(r)&&(0,ee.jsx)(t,{column:r,children:(0,ee.jsx)(it,{...e,fields:r.fields})}),zt(r)&&(0,ee.jsx)(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}var Yr=require("react/jsx-runtime");function Gr(e){return n=>(0,Yr.jsx)(it,{...n,components:{column:Ur,field:e}})}var lt=require("jotai");var fe=require("react");function Hr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},a=(0,lt.useSetAtom)(Kn),l=(0,lt.useSetAtom)(Or),s={data:null,error:null,success:!1},[c,u,b]=(0,fe.useActionState)(async(I,te)=>{let[me,ne]=e(),U=Cn(me,ne,n?.translations);if(i===!1)return t?await t(te,U):I;let C=Bt(te),re=U.safeParse(C);if(!re.success){let x=En(re.error);return(0,fe.startTransition)(()=>{a(x)}),at(C,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let x=await t(C,U);return x.success?(r?.(x.data),o||(0,fe.startTransition)(()=>{l()}),Xr(C,o)):at(C,x.error)}catch(x){return ae.error("Error executing form action:",x),at(C,{title:"An unexpected error occurred submitting the form.",details:xi(x)})}return Xr(re.data,o)},s);return[u,c,b]}function xi(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Xr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function at(e,t){return{data:e,error:t,success:!1}}var v=require("react");var qr=require("react"),Be=require("jotai");function $r(){let e=(0,Be.useSetAtom)(Wn),t=(0,Be.useSetAtom)(Er),n=(0,Be.useSetAtom)(Vr);return(0,qr.useCallback)(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function Zr(){let e=$r(),t=(0,v.useRef)({}),n=(0,v.useRef)([]),r=(0,v.useRef)(new Set),o=(0,v.useCallback)((l,s,c)=>{l in t.current||(t.current[l]=s,n.current.push(c))},[]),i=(0,v.useCallback)(l=>{t.current[l]&&(delete t.current[l],n.current=n.current.filter(s=>s.name!==l),r.current.add(l),(0,v.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function a(){return[t.current,n.current]}return[a,o,i]}var A=require("react/jsx-runtime"),hi=Gr(ir);function Wr(e){let t=e.translations?.[e.lang??""],[n,r,o]=Zr(),[i,a,l]=Hr(n,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit,translations:t}),s=e.config.validation.showError&&!a.success&&a.error,c=a.data??e.value;return(0,A.jsxs)(A.Fragment,{children:[s&&Me(e.config.alert,u=>(0,A.jsx)("div",{className:"mb-4 w-full",children:(0,A.jsx)(u,{description:a.error?.description,details:a.error?.details,title:a.error.title})})),(0,A.jsx)(pr,{action:i,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:u,fields:b})=>(0,A.jsx)(hi,{disabled:u,fields:b,style:e.config.style,children:I=>(0,A.jsx)(Mr,{...I,config:e.config,context:e.context,onMount:r,onUnmount:o,onValueChange:e.onValueChange,translations:t,value:c})})})]})}var Kr=require("jotai"),st=require("react/jsx-runtime");function zr(e){return(0,st.jsx)(Kr.Provider,{children:(0,st.jsx)(Wr,{...e})})}
|
|
1
|
+
"use strict";var oo=Object.create;var ye=Object.defineProperty;var io=Object.getOwnPropertyDescriptor;var ao=Object.getOwnPropertyNames;var lo=Object.getPrototypeOf,so=Object.prototype.hasOwnProperty;var co=(e,t)=>{for(var n in t)ye(e,n,{get:t[n],enumerable:!0})},dt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ao(t))!so.call(e,o)&&o!==n&&ye(e,o,{get:()=>t[o],enumerable:!(r=io(t,o))||r.enumerable});return e};var uo=(e,t,n)=>(n=e!=null?oo(lo(e)):{},dt(t||!e||!e.__esModule?ye(n,"default",{value:e,enumerable:!0}):n,e)),fo=e=>dt(ye({},"__esModule",{value:!0}),e);var Ti={};co(Ti,{Form:()=>zr});module.exports=fo(Ti);var Ye=require("react/jsx-runtime");function ft(e){return!e.errors||e.errors.length===0?null:(0,Ye.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,Ye.jsx)("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var be="input",mt="input/email",gt="input/number";var pt="textarea",yt="radio",bt="checkbox",xt="select",ht="select/month",Tt="select/year";var Xe="column";var Rt="label",q="value",xe="options",He="email",St="number",At="password",Ct="tel",ae="text",Et="aria-errormessage",Ft="aria-invalid",Nt="data-invalid",kt="data-readonly",It="aria",vt="data",he="min",Te="max",wt="minLength",Pt="maxLength",$="$ref";var Ot="source",Vt="state",Re="http://luna.internal",P="vertical",Z="horizontal";function d(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function Se(e){return e==null||e===""}function O(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function F(e){return typeof e=="string"}function Dt(e){return d(e)&&"url"in e}var mo=/[^/]+$/;function Lt(e,t=[],n=q){if(Array.isArray(t))return t.find(r=>{let o=qe(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function qe(e,t=q){if(e!=null){if(O(e))return e;if(d(e)){let n=go(e,t);if(O(n))return n}}}function go(e,t){let n=R(e,t);if(O(n))return n}function Mt(e,t){if(Array.isArray(e))return e;let n=R(e,t);return Array.isArray(n)?n:null}function R(e,t){if(!t||!d(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(d(r)&&o in r)r=r[o];else return null;return r}function _t(e,t={label:Rt,value:q}){return e.map(n=>{if(d(n)){let r=R(n,t.label),o=R(n,t.value);if(O(r)&&O(o))return{label:`${r}`,value:`${o}`}}return n})}function Ut(e=ae){if(e){let t=e.match(mo);if(t){let[n]=t;if(n!==be)return n.trim().toLowerCase()}}return ae}function Gt(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 po=/\[([^\]]+)\]\(([^)]+)\)/g;function S(e,t={}){if(F(e))return yo(e,t);if(Array.isArray(e))return e.map(n=>S(n,t));if(d(e)){let n={};for(let r in e)n[r]=S(e[r],t);return n}return e}function L(e){return F(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>L(t)):d(e)?Object.values(e).some(t=>L(t)):!1}function yo(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?R(t,r):t[r];return O(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=po.exec(e))!==null;){let[a,l,s]=n,u=n.index;o=!0,u>r&&i.push(e.substring(r,u));let c=t?t(u,s,l):a;i.push(c),r=u+a.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var b={error:(...e)=>{$e()&&!Ze()&&Ae().error("[Luna Form]",...e)},warn:(...e)=>{$e()&&!Ze()&&Ae().warn("[Luna Form]",...e)},info:(...e)=>{$e()&&!Ze()&&Ae().info("[Luna Form]",...e)}},$e=()=>typeof Ae()<"u",Ze=()=>!0,Ae=()=>globalThis.console;function Yt(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===q&&n.push(i),i.action===Ot&&r.push(i),i.action===Vt&&o.push(i)}),t({sources:r,states:o,values:n})}function Xt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(Dt(i)){let a=S(i.url,e),l=i.body?S(i.body,e):i.body;n(o,{...i,url:a,body:l})}})}var le={eq:Ro,gt:Eo,gte:Fo,in:Ao,lt:No,lte:ko,neq:So,nin:Co},bo=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,Ht=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function xo(e){return typeof e=="string"&&bo.test(e)}function ho(e){return typeof e=="string"&&Ht.test(e)}function To(e){let t=e.match(Ht);if(t){let[,n,r,o,i,a,l]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(a??0),Number(l??0)).getTime()}return NaN}function V(e){return xo(e)?new Date(e).getTime():ho(e)?To(e):Number(e)}function Ro(e,t){return e===t}function So(e,t){return e!==t}function Ao(e,t){return Array.isArray(t)&&t.includes(String(e))}function Co(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Eo(e,t){return V(e)>V(t)}function Fo(e,t){return V(e)>=V(t)}function No(e,t){return V(e)<V(t)}function ko(e,t){return V(e)<=V(t)}function qt(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:a}=r;if(!e){n(o);return}let l=Io(e,a);n(o,l?i:void 0)})}function Io(e,t){if(t===void 0)return!0;if(F(t))return We(e,"value")===t;if(Array.isArray(t)){let n=We(e,"value");return t.includes(String(n))}return vo(e,t)}function vo(e=null,t){let n=We(e,t.field??"value"),{operator:r="eq",value:o}=t,i=le[r];return i?i(n,o):!1}function We(e,t){return d(e)?t.includes(".")?R(e,t):e[t]:e}function $t(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?S(i,e):void 0)})})}var Ce=e=>A(ht)(e),Ee=e=>A(Tt)(e),x=A(bt),Ke=A(be),N=A(yt),k=A(xt),ze=A(pt),Zt=A(ae,He,At,Ct),Wt=A(mt,He),Fe=A(gt,St);function Ne(e){return N(e)||x(e)}function Kt(e){return e.type===Xe}function zt(e){return e.type!==Xe}function jt(e){return k(e)||N(e)}function Jt(e){return Ke(e)||ze(e)}function se(e){return e!=null&&e!==""}function A(...e){return t=>{let n=F(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Qt(e,t={}){if(k(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&d(n))return[n]}}function en(e){return N(e)||x(e)?Z:e.advanced?.orientation??P}function tn(e){return x(e)?e.advanced?.reverse!==!1:!1}function nn(e,t){let n=e.readonly??!1;return t||n}function rn(e){if(N(e)||k(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||d(t)&&!($ in t))return t}}var wo=/^\d+$/;function on(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function an(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 je(){return new Date().getFullYear()}function Je(e,t){if(typeof e=="number")return e;let n=t??je(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,a]=o,l=parseInt(a,10);if(!isNaN(l))return i==="+"?n+l:n-l}return n}return wo.test(r)?parseInt(r,10):n}var ke=je();function Po(e){if(k(e))return Oo(e)}function Oo(e){if(Ce(e))return on();if(Ee(e)){let t=e.advanced?.length?.min??ke,n=e.advanced?.length?.max??ke+5;return an(Je(t,ke),Je(n,ke))}}function ln(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ke(e)?{...n,...Vo(e)}:k(e)?{...n,...Do(e)}:ze(e)?{...n,...Lo(e)}:n}function Vo(e){let t=Ut(e.type),n={...e,type:t};return{...sn(e),...Mo(n),...Zt(n)?cn(n):{},type:t}}function Do(e){let t=Po(e);return t?{options:t}:{}}function Lo(e){return{...sn(e),...cn(e)}}function sn(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function Mo(e){return Fe(e)?_o(e):{}}function cn(e){return un(e,{min:wt,max:Pt})}function _o(e){return un(e,{min:he,max:Te})}function un(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 dn(e,t){let n=rn(e);return n||Qt(e,t)}function Uo(e,t){let n=d(t)&&e.name in t?t[e.name]:t;return qe(n,e.advanced?.entity)}function Go(e,t,n){return jt(e)&&Array.isArray(n)?{...t,[xe]:n}:t}function Bo(e,t,n){if(e.required&&!se(n)&&k(e)&&e.advanced?.preselected!==!1&&xe in t){let r=t[xe];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function Yo(e,t){return k(e)&&Array.isArray(t)?_t(t,e.advanced?.options):t}function fn(e,t,n,r){let o=Uo(e,r),i=Array.isArray(n)?Yo(e,n):n,a=Go(e,t,i),l=Bo(e,a,o);return{commonPropsWithOptions:a,defaultValue:l}}function mn(e,t){return x(e)?{checked:se(t)?t:!1}:{value:t??""}}var Xo=/^#\/definition\//;function ve(e=[],t){let n=Ie(e,t);return Array.isArray(n)?n.sort((r,o)=>gn(r)-gn(o)):[]}function Ie(e,t,n=new Map,r=new WeakSet){if(!Ho(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=>Ie(i,t,n,r));if($ in e&&F(e[$])){let i=e[$].replace(Xo,""),a=R(t,i);return a!==null?Ie(a,t,n,r):e}let o={};for(let[i,a]of Object.entries(e))o[i]=Ie(a,t,n,r);return r.delete(e),n.set(e,o),o}function pn(e){return Object.entries(e??{})}function gn(e){return e.order??Number.MAX_VALUE}function Ho(e){return e!==void 0&&d(e)&&Object.keys(e).length>0}function yn(e,t){let n={};for(let[r,o]of pn(t))n[`${e}-${r}`]=o;return n}function qo(e){return yn(It,e)}function $o(e){return yn(vt,e)}function bn(e,t){let n=qo(e.advanced?.aria);return t&&t.length>0&&(n[Ft]="true",n[Et]=`${e.name}-error`),n}function xn(e){return $o(e.advanced?.data)}var hn={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Tn={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Rn(e,t=2){return hn[e&&e in hn?e:t]}function Sn(e){if(e&&e in Tn)return Tn[e]}var f=require("zod");function m(e,t){return e?t?t[e]??e:e:""}var Zo=[[Fe,Jo],[Wt,Wo],[Ee,Qo],[Ce,ei],[x,Ko],[N,zo]];function Cn(e,t=[],n){let r=f.z.object(e);return t.length===0?r:oi(r,t,n)}function En(e){let t={},n=f.z.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function Fn(e,t){for(let[n,r]of Zo)if(n(e))return r(e,t);return jo(e,t)}function Wo(e,t){let n=f.z.string().trim();if(e.required){let r=W(e,t),o=n.min(1,r).pipe(An(e,t));return f.z.preprocess(i=>Se(i)?"":i,o)}return n.pipe(An(e,t)).or(f.z.literal("")).nullable()}function Ko(e,t){let n=f.z.coerce.boolean();return e.required?(n=n.refine(r=>r===!0,{message:W(e,t)}),f.z.preprocess(r=>r===null?!1:r,n)):n.nullable()}function zo(e,t){let n=f.z.coerce.string();return e.required?(n=n.min(1,W(e,t)),f.z.preprocess(r=>Se(r)?"":r,n)):n.or(f.z.literal("")).nullable()}function jo(e,t){let n=f.z.coerce.string().trim();return n=Nn(n,e,t),e.required?(n=kn(n,e,t),f.z.preprocess(r=>Se(r)?"":r,n)):n.nullable()}function Jo(e,t){let n=f.z.coerce.number().int();return n=Nn(n,e,t),e.required?(n=kn(n,e,t),f.z.preprocess(r=>r===null?void 0:r,n)):n.nullable()}function Qo(e,t){return e.required?f.z.preprocess(ti,f.z.coerce.number({message:W(e,t)}).int()):f.z.coerce.number().int().nullable()}function ei(e,t){let n=W(e,t),r=f.z.coerce.number().int().min(1,n).max(12,n);return e.required?r:r.nullable()}function ti(e){return e===null||e===""?void 0:e}function An(e,t){let n=e.validation?.email?m(e.validation?.email,t):void 0;return f.z.email(n)}function Nn(e,t,n){return e=ni(e,t,n),e=ri(e,t,n),e}function kn(e,t,n){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,W(t,n)):e}var ni=(e,t,n)=>In(e,t,he,n),ri=(e,t,n)=>In(e,t,Te,n);function In(e,t,n,r){let o=t.advanced?.length?.[n];if(o!==void 0){let i=t.validation?.length?.[n]?m(t.validation?.length?.[n],r):void 0;return e[n](o,i)}return e}function oi(e,t=[],n){let r=ai(t);return r.length===0?e:e.superRefine((o,i)=>{for(let{name:a,rule:l}of r)if(!ii(o,a,l)){let s=m(l.message,n);i.addIssue({code:"custom",message:s,path:[a]})}})}function ii(e,t,n){let r=n.operator??"eq",o=le[r];return o?o(e[t],e[n.field]):!1}function ai(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 vn(e,t,n,r){let o=[],i=Array.isArray(t)?t:[t];for(let a of i){let l=a.operator??"eq",s=le[l];if(s&&!s(e,n(a.field))&&a.message){let u=m(a.message,r);o.push(u)}}return o}function W(e,t){return e.validation?.required?m(e.validation?.required,t):void 0}function wn(e,t){if(!t||!si(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||li(r);return t.some(a=>!(a.protocol&&a.protocol!==r||a.hostname&&a.hostname!==o||a.port!==void 0&&String(a.port)!==i))}catch{return!1}}function li(e){return e==="https"?"443":"80"}function si(e){return/^(https?:)?\/\//.test(e)}function Pn(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,Re);new URL(t,Re).searchParams.forEach((i,a)=>{n.searchParams.set(a,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(Re,""):o}catch{return t||e}}function On(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=Pn(t.url,n.url),o=ci(t,n),i=ui(t,n);return{...t,...n,url:r,body:o,headers:i}})}function ci(e,t){return d(t.body)&&d(e?.body)?{...e.body,...t.body}:t.body??e?.body}function ui(e,t){return d(t.headers)&&d(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function we(e,t){return{...e,...t}}var Vn=require("tailwind-merge"),Dn=require("react/jsx-runtime");function Pe(e){let t=e.errors&&e.errors.length>0;return(0,Dn.jsx)("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[Nt]:"true"},...e.disabled&&{[kt]:"true"},"data-orientation":e.orientation,className:(0,Vn.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&&(e.isReversed?"flex-row-reverse!":"flex-row!"),"data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",e.className),children:e.children})}var Ln=require("tailwind-merge"),_n=require("react/jsx-runtime");function Mn(e){return(0,_n.jsx)(Pe,{...e,orientation:P,className:(0,Ln.twMerge)("gap-3 has-[>[data-slot=field-content]]:items-start",!e.isClickable&&"[&>*]:w-full"),children:e.children})}var Un=require("tailwind-merge"),Bn=require("react/jsx-runtime");function Gn(e){return(0,Bn.jsx)(Pe,{...e,orientation:Z,className:(0,Un.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 Qe=require("react/jsx-runtime");function Yn(e){let t=Ne(e.field),n=x(e.field),r=tn(e.field);return e.orientation===P?(0,Qe.jsx)(Mn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children}):(0,Qe.jsx)(Gn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children})}function Xn(e){if(!e.field.type)return null;let t=ln(e.field,e.disabled),n=xn(e.field),r=bn(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 Hn=require("tailwind-merge"),K=require("react/jsx-runtime");function qn(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=we(e.style,{orientation:en(e.field)}),o=nn(e.field,e.disabled);return(0,K.jsxs)("div",{className:(0,Hn.twMerge)("flex flex-col gap-3",Sn(t)),children:[(0,K.jsx)(Yn,{disabled:o,errors:n,field:e.field,orientation:r,children:(0,K.jsx)(Xn,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),(0,K.jsx)(ft,{errors:n,name:e.field.name})]})}var D=require("jotai"),et=require("jotai-family"),Oe=require("fast-equals");function di(e){return(0,et.atomFamily)(t=>(0,D.atom)(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let a=i[t];(!a||!(0,Oe.deepEqual)(a,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:a,...l}=i;r(e,l)}}))}function fi(e){return(0,D.atom)(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function mi(e){return(0,D.atom)(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);a&&n(e,i)})}function gi(e){return(0,D.atom)(null,(t,n,r)=>{let o=t(e);(0,Oe.deepEqual)(o,r)||n(e,r)})}function $n(e,t={}){let{merge:n,validateTarget:r}=t;return(0,et.atomFamily)(o=>(0,D.atom)(i=>{let a=i(e)[o];if(a&&n)return n(Object.values(a))},(i,a,l,s)=>{if(r&&!r(l))return;let u=i(e),c={...u[l]??{}};if(s!=null){let y=c[o];(!y||!(0,Oe.deepEqual)(y,s))&&(c[o]=s,a(e,{...u,[l]:c}))}else if(c[o])if(delete c[o],Object.keys(c).length===0){let{[l]:y,...w}=u;a(e,w)}else a(e,{...u,[l]:c})}))}function Zn(e){return(0,D.atom)(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);for(let l in i){let s={...i[l]},u=!1;for(let c of r)s[c]&&(delete s[c],u=!0,a=!0);u&&(Object.keys(s).length===0?delete i[l]:i[l]=s)}a&&n(e,i)})}function z(e={}){let t=(0,D.atom)(e);return{atom:t,clearAll:fi(t),clear:mi(t),bulkReport:gi(t),report:di(t)}}var tt=z(),Wn=tt.clear,Kn=tt.bulkReport,Ve=tt.report;var zn=require("jotai"),Jn=require("react/jsx-runtime");function jn(e){return n=>{let r=(0,zn.useAtomValue)(Ve(n.field.name));return(0,Jn.jsx)(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}var Qn=z(),er=Qn.atom,tr=Qn.report;var nr=require("jotai"),or=require("react/jsx-runtime");function rr(e){return n=>{let r=(0,nr.useAtomValue)(tr(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 ir=rr(jn(qn));var lr=require("react/jsx-runtime");function ar(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return(0,lr.jsx)("div",{"data-slot":"field-control",className:"w-full",children:t})}var sr=require("react/jsx-runtime");function ce(e){return(0,sr.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 cr=require("react/jsx-runtime");function ue(e){return Bt(e,(t,n,r)=>(0,cr.jsx)("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}var M=require("react/jsx-runtime");function ur(e){return(0,M.jsxs)(M.Fragment,{children:[e.title&&(0,M.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:ue(e.title)}),e.description&&(0,M.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:ue(e.description)})]})}var j=require("react/jsx-runtime");function dr(e){let t=e.section.fields||[],{compact:n}=we(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?(0,j.jsx)(ce,{compact:n,children:e.children}):(0,j.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,j.jsx)(ur,{description:e.section.description,title:e.section.title}),(0,j.jsx)(ce,{compact:n,children:e.children})]})}var mr=require("react");var nt=require("react/jsx-runtime");function fr(){return(0,nt.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,nt.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var I=require("react/jsx-runtime");function gr(e){let t=ve(e.sections,e.definition);return(0,I.jsx)("div",{className:"h-full w-full",children:(0,I.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,I.jsxs)(ce,{children:[t.map((n,r)=>(0,I.jsxs)(mr.Fragment,{children:[(0,I.jsx)(dr,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&(0,I.jsx)(fr,{})]},r)),e.control&&(0,I.jsx)(ar,{isPending:e.isPending,children:e.control})]})})})}var yr=require("react/jsx-runtime");function pr(e){return(0,yr.jsx)("p",{className:"-mt-2 text-xs leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var br=require("react/jsx-runtime");function De(e){let t=ue(e.text);return t?(0,br.jsx)(pr,{children:t}):null}var xr=require("tailwind-merge"),Le=require("react/jsx-runtime");function hr(e){let t=e.style?.showOptionalLabel??!0,n=N(e.field)||x(e.field);return(0,Le.jsxs)("label",{"data-slot":"field-label","data-normal":n,className:(0,xr.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,t&&!e.field.required&&(0,Le.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:m("(Optional)",e.translations)})]})}var de=require("react/jsx-runtime");function Tr(e){let t=L(e.field.label)?S(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=L(e.field.description)?S(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return(0,de.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,de.jsx)(hr,{field:e.field,style:e.config?.style,translations:e.translations,children:m(t,e.translations)}),e.orientation===Z&&(0,de.jsx)(De,{text:m(n,e.translations)})]})}var _=require("react/jsx-runtime");function Rr(e){return(0,_.jsxs)(_.Fragment,{children:[e.field.name&&e.field.label&&(0,_.jsx)(Tr,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations}),e.children,e.orientation===P&&e.field.description&&(0,_.jsx)(De,{text:m(e.field.description,e.translations)})]})}function Me(e,t){return e?t(e):null}var h=require("react");var Sr=require("jotai");var pi=e=>{let t=On(e);if(t)return t},yi=e=>e.trim()!=="",Ar=(0,Sr.atom)({}),Cr=$n(Ar,{merge:pi,validateTarget:yi}),Er=Zn(Ar);var kr=require("jotai");var Fr=uo(require("swr"),1);function Nr(e=null,t,n=!1){let{data:r,error:o}=(0,Fr.default)(bi(e,t,n),t.fetcher.provider);if(o&&b.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return Mt(r,e.namespace)}return null}function bi(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!L(e.url)){if(wn(e.url,t.fetcher.remotePatterns))return e;b.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Ir(e,t,n){let r=dn(e,n),[o,i]=(0,kr.useAtom)(Cr(e.name));return[Nr(o??r,t,e.disabled),i]}var U=require("react");function vr(e,t,n,r){let{name:o}=e,i=(0,U.useMemo)(()=>Fn(e,r),[e,r]),a=(0,U.useEffectEvent)(s=>{s&&t(s,i,e)}),l=(0,U.useEffectEvent)(s=>{s&&n(s)});return(0,U.useEffect)(()=>(a(o),()=>{l(o)}),[o]),i}var ee=require("jotai");var J=require("react");function wr(){let e=(0,J.useRef)(null);(0,J.useEffect)(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return(0,J.useCallback)((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var _e=z(),Pr=_e.atom,Or=_e.clearAll,Vr=_e.clear,Ue=_e.report;var Dr=require("jotai"),Q=require("react");function Lr(e,t){let{name:n}=e,r=(0,Q.useRef)(!1),[o,i]=(0,Dr.useAtom)(Ue(n));(0,Q.useEffect)(()=>{if(!t||!(n in t))return;let l=t[n];se(l)&&(b.info("useValue: setting skipNextOnChange to true",{fieldName:n,newValue:l}),r.current=!0,i(l))},[n,t,i]);let a=(0,Q.useCallback)(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:a,value:o}}var rt=require("react/jsx-runtime");function Mr(e){let t=e.field.advanced?.entity,n=(0,ee.useStore)(),r=wr(),[,o]=(0,h.useTransition)(),{setValue:i,shouldSkipOnChange:a,value:l}=Lr(e.field,e.value),s=(0,h.useRef)(l);s.current=l;let u=(0,h.useRef)(e.translations);u.current=e.translations;let c=Jt(e.field),y=Ne(e.field),w=(0,ee.useSetAtom)(Pr),ne=(0,ee.useSetAtom)(er),me=(0,ee.useSetAtom)(Ve(e.field.name)),[re,G]=Ir(e.field,e.config,l),E=vr(e.field,e.onMount,e.onUnmount,e.translations),oe=m(e.commonProps.placeholder,e.translations),T={...e.commonProps,placeholder:oe},{commonPropsWithOptions:jr,defaultValue:Jr}=fn(e.field,T,re,l),ct=(0,h.useRef)(null);ct.current=g=>{i(g),e.onValueChange&&e.onValueChange({name:e.field.name,value:g})};let Qr=mn(e.field,Jr),ge=(0,h.useCallback)(g=>{let B=E.safeParse(g).error?.issues.map(ie=>ie.message)??[],Y=e.field.validation?.custom,Be=Y?vn(g,Y,ie=>n.get(Ue(ie)),u.current):[];me([...B,...Be])},[e.field.validation?.custom,E,me,n]),ut=(0,h.useCallback)((g,p)=>{if(c){r(()=>{p({value:g})},500);return}let B=Lt(g,re,t);p(B)},[re,t,c,r]),eo=(0,h.useCallback)(g=>{let p=g.target.value;if(b.info("onChange fired",{fieldName:e.field.name,fieldType:e.field.type,inputValue:p,currentValue:s.current,hasTextable:c,hasClickable:y}),a()&&(b.info("shouldSkipOnChange returned true",{fieldName:e.field.name,willSkip:!c||p===s.current,reason:c?"value unchanged":"not textable (checkbox/radio/select)"}),!c||p===s.current)){b.info("SKIPPING onChange",{fieldName:e.field.name});return}b.info("onChange processing",{fieldName:e.field.name,inputValue:p}),ct.current?.(p),e.config.validation.change&&ge(p);let B=e.field.event?.change;B&&ut(p,Y=>{Yt(B,({sources:Be,states:ie,values:no})=>{o(()=>{Xt(Y,Be,(X,H)=>G(X,H)),qt(Y,ie,(X,H)=>{ne(pe=>{if(H)return{...pe,[X]:H};let{[X]:Ri,...ro}=pe;return ro})}),$t(Y,no,(X,H)=>{w(pe=>({...pe,[X]:H}))})})})})},[ut,y,c,e.config.validation.change,e.field.event?.change,e.field.name,e.field.type,ne,G,w,a,ge]),to=(0,h.useCallback)(g=>{if(!y){let p=g.target.value;e.config.validation.blur&&ge(p)}},[y,e.config.validation.blur,ge]);return Me(e.config.inputs[e.field.type],g=>(0,rt.jsx)(Rr,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations,children:(0,rt.jsx)(g,{...jr,...e.ariaAttributes,...e.dataAttributes,...Qr,onBlur:to,onChange:eo})}))}var _r=require("tailwind-merge"),ot=require("react/jsx-runtime");function Ur(e){let t=Rn(e.column?.advanced?.cols);return(0,ot.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,ot.jsx)("div",{className:(0,_r.twMerge)("grid grid-cols-1 gap-3 sm:gap-4",t),children:e.children})})}var Gr=require("react"),te=require("react/jsx-runtime");function it(e){let{column:t,field:n}=e.components;return ve(e.fields).map((r,o)=>(0,te.jsxs)(Gr.Fragment,{children:[Kt(r)&&(0,te.jsx)(t,{column:r,children:(0,te.jsx)(it,{...e,fields:r.fields})}),zt(r)&&(0,te.jsx)(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}var Yr=require("react/jsx-runtime");function Br(e){return n=>(0,Yr.jsx)(it,{...n,components:{column:Ur,field:e}})}var lt=require("jotai");var fe=require("react");function Hr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},a=(0,lt.useSetAtom)(Kn),l=(0,lt.useSetAtom)(Or),s={data:null,error:null,success:!1},[u,c,y]=(0,fe.useActionState)(async(w,ne)=>{let[me,re]=e(),G=Cn(me,re,n?.translations);if(i===!1)return t?await t(ne,G):w;let E=Gt(ne),oe=G.safeParse(E);if(!oe.success){let T=En(oe.error);return(0,fe.startTransition)(()=>{a(T)}),at(E,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let T=await t(E,G);return T.success?(r?.(T.data),o||(0,fe.startTransition)(()=>{l()}),Xr(E,o)):at(E,T.error)}catch(T){return b.error("Error executing form action:",T),at(E,{title:"An unexpected error occurred submitting the form.",details:xi(T)})}return Xr(oe.data,o)},s);return[c,u,y]}function xi(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Xr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function at(e,t){return{data:e,error:t,success:!1}}var v=require("react");var qr=require("react"),Ge=require("jotai");function $r(){let e=(0,Ge.useSetAtom)(Wn),t=(0,Ge.useSetAtom)(Er),n=(0,Ge.useSetAtom)(Vr);return(0,qr.useCallback)(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function Zr(){let e=$r(),t=(0,v.useRef)({}),n=(0,v.useRef)([]),r=(0,v.useRef)(new Set),o=(0,v.useCallback)((l,s,u)=>{l in t.current||(t.current[l]=s,n.current.push(u))},[]),i=(0,v.useCallback)(l=>{t.current[l]&&(delete t.current[l],n.current=n.current.filter(s=>s.name!==l),r.current.add(l),(0,v.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function a(){return[t.current,n.current]}return[a,o,i]}var C=require("react/jsx-runtime"),hi=Br(ir);function Wr(e){let t=e.translations?.[e.lang??""],[n,r,o]=Zr(),[i,a,l]=Hr(n,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit,translations:t}),s=e.config.validation.showError&&!a.success&&a.error,u=a.data??e.value;return(0,C.jsxs)(C.Fragment,{children:[s&&Me(e.config.alert,c=>(0,C.jsx)("div",{className:"mb-4 w-full",children:(0,C.jsx)(c,{description:a.error?.description,details:a.error?.details,title:a.error.title})})),(0,C.jsx)(gr,{action:i,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:c,fields:y})=>(0,C.jsx)(hi,{disabled:c,fields:y,style:e.config.style,children:w=>(0,C.jsx)(Mr,{...w,config:e.config,context:e.context,onMount:r,onUnmount:o,onValueChange:e.onValueChange,translations:t,value:u})})})]})}var Kr=require("jotai"),st=require("react/jsx-runtime");function zr(e){return(0,st.jsx)(Kr.Provider,{children:(0,st.jsx)(Wr,{...e})})}
|
package/dist/client/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as Ke}from"react/jsx-runtime";function ze(e){return!e.errors||e.errors.length===0?null:Ke("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)=>Ke("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var re="input",je="input/email",Je="input/number";var Qe="textarea",et="radio",tt="checkbox",nt="select",rt="select/month",ot="select/year";var Fe="column";var it="label",M="value",oe="options",Ne="email",at="number",lt="password",st="tel",$="text",ct="aria-errormessage",ut="aria-invalid",dt="data-invalid",ft="data-readonly",mt="aria",pt="data",ie="min",ae="max",gt="minLength",yt="maxLength",_="$ref";var bt="source",xt="state",le="http://luna.internal",N="vertical",U="horizontal";function d(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function se(e){return e==null||e===""}function k(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function A(e){return typeof e=="string"}function ht(e){return d(e)&&"url"in e}var kr=/[^/]+$/;function Tt(e,t=[],n=M){if(Array.isArray(t))return t.find(r=>{let o=ke(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function ke(e,t=M){if(e!=null){if(k(e))return e;if(d(e)){let n=vr(e,t);if(k(n))return n}}}function vr(e,t){let n=h(e,t);if(k(n))return n}function Rt(e,t){if(Array.isArray(e))return e;let n=h(e,t);return Array.isArray(n)?n:null}function h(e,t){if(!t||!d(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(d(r)&&o in r)r=r[o];else return null;return r}function St(e,t={label:it,value:M}){return e.map(n=>{if(d(n)){let r=h(n,t.label),o=h(n,t.value);if(k(r)&&k(o))return{label:`${r}`,value:`${o}`}}return n})}function At(e=$){if(e){let t=e.match(kr);if(t){let[n]=t;if(n!==re)return n.trim().toLowerCase()}}return $}function Ct(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 Ir=/\[([^\]]+)\]\(([^)]+)\)/g;function T(e,t={}){if(A(e))return wr(e,t);if(Array.isArray(e))return e.map(n=>T(n,t));if(d(e)){let n={};for(let r in e)n[r]=T(e[r],t);return n}return e}function I(e){return A(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>I(t)):d(e)?Object.values(e).some(t=>I(t)):!1}function wr(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?h(t,r):t[r];return k(o)?String(o):n})}function Et(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=Ir.exec(e))!==null;){let[a,l,s]=n,c=n.index;o=!0,c>r&&i.push(e.substring(r,c));let u=t?t(c,s,l):a;i.push(u),r=c+a.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var Z={error:(...e)=>{ve()&&!Ie()&&ce().error("[Luna Form]",...e)},warn:(...e)=>{ve()&&!Ie()&&ce().warn("[Luna Form]",...e)},info:(...e)=>{ve()&&!Ie()&&ce().info("[Luna Form]",...e)}},ve=()=>typeof ce()<"u",Ie=()=>!0,ce=()=>globalThis.console;function Ft(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===M&&n.push(i),i.action===bt&&r.push(i),i.action===xt&&o.push(i)}),t({sources:r,states:o,values:n})}function Nt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(ht(i)){let a=T(i.url,e),l=i.body?T(i.body,e):i.body;n(o,{...i,url:a,body:l})}})}var W={eq:Lr,gt:Br,gte:Gr,in:_r,lt:Yr,lte:Xr,neq:Mr,nin:Ur},Pr=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,kt=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function Or(e){return typeof e=="string"&&Pr.test(e)}function Vr(e){return typeof e=="string"&&kt.test(e)}function Dr(e){let t=e.match(kt);if(t){let[,n,r,o,i,a,l]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(a??0),Number(l??0)).getTime()}return NaN}function v(e){return Or(e)?new Date(e).getTime():Vr(e)?Dr(e):Number(e)}function Lr(e,t){return e===t}function Mr(e,t){return e!==t}function _r(e,t){return Array.isArray(t)&&t.includes(String(e))}function Ur(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Br(e,t){return v(e)>v(t)}function Gr(e,t){return v(e)>=v(t)}function Yr(e,t){return v(e)<v(t)}function Xr(e,t){return v(e)<=v(t)}function vt(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:a}=r;if(!e){n(o);return}let l=Hr(e,a);n(o,l?i:void 0)})}function Hr(e,t){if(t===void 0)return!0;if(A(t))return we(e,"value")===t;if(Array.isArray(t)){let n=we(e,"value");return t.includes(String(n))}return qr(e,t)}function qr(e=null,t){let n=we(e,t.field??"value"),{operator:r="eq",value:o}=t,i=W[r];return i?i(n,o):!1}function we(e,t){return d(e)?t.includes(".")?h(e,t):e[t]:e}function It(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?T(i,e):void 0)})})}var ue=e=>R(rt)(e),de=e=>R(ot)(e),g=R(tt),Pe=R(re),C=R(et),E=R(nt),Oe=R(Qe),wt=R($,Ne,lt,st),Pt=R(je,Ne),fe=R(Je,at);function me(e){return C(e)||g(e)}function Ot(e){return e.type===Fe}function Vt(e){return e.type!==Fe}function Dt(e){return E(e)||C(e)}function Lt(e){return Pe(e)||Oe(e)}function K(e){return e!=null&&e!==""}function R(...e){return t=>{let n=A(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Mt(e,t={}){if(E(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&d(n))return[n]}}function _t(e){return C(e)||g(e)?U:e.advanced?.orientation??N}function Ut(e){return g(e)?e.advanced?.reverse!==!1:!1}function Bt(e,t){let n=e.readonly??!1;return t||n}function Gt(e){if(C(e)||E(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||d(t)&&!(_ in t))return t}}var $r=/^\d+$/;function Yt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Xt(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 Ve(){return new Date().getFullYear()}function De(e,t){if(typeof e=="number")return e;let n=t??Ve(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,a]=o,l=parseInt(a,10);if(!isNaN(l))return i==="+"?n+l:n-l}return n}return $r.test(r)?parseInt(r,10):n}var pe=Ve();function Zr(e){if(E(e))return Wr(e)}function Wr(e){if(ue(e))return Yt();if(de(e)){let t=e.advanced?.length?.min??pe,n=e.advanced?.length?.max??pe+5;return Xt(De(t,pe),De(n,pe))}}function Ht(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Pe(e)?{...n,...Kr(e)}:E(e)?{...n,...zr(e)}:Oe(e)?{...n,...jr(e)}:n}function Kr(e){let t=At(e.type),n={...e,type:t};return{...qt(e),...Jr(n),...wt(n)?$t(n):{},type:t}}function zr(e){let t=Zr(e);return t?{options:t}:{}}function jr(e){return{...qt(e),...$t(e)}}function qt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function Jr(e){return fe(e)?Qr(e):{}}function $t(e){return Zt(e,{min:gt,max:yt})}function Qr(e){return Zt(e,{min:ie,max:ae})}function Zt(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 Wt(e,t){let n=Gt(e);return n||Mt(e,t)}function eo(e,t){let n=d(t)&&e.name in t?t[e.name]:t;return ke(n,e.advanced?.entity)}function to(e,t,n){return Dt(e)&&Array.isArray(n)?{...t,[oe]:n}:t}function no(e,t,n){if(e.required&&!K(n)&&E(e)&&e.advanced?.preselected!==!1&&oe in t){let r=t[oe];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function ro(e,t){return E(e)&&Array.isArray(t)?St(t,e.advanced?.options):t}function Kt(e,t,n,r){let o=eo(e,r),i=Array.isArray(n)?ro(e,n):n,a=to(e,t,i),l=no(e,a,o);return{commonPropsWithOptions:a,defaultValue:l}}function zt(e,t){return g(e)?{checked:K(t)?t:!1}:{value:t??""}}var oo=/^#\/definition\//;function ye(e=[],t){let n=ge(e,t);return Array.isArray(n)?n.sort((r,o)=>jt(r)-jt(o)):[]}function ge(e,t,n=new Map,r=new WeakSet){if(!io(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=>ge(i,t,n,r));if(_ in e&&A(e[_])){let i=e[_].replace(oo,""),a=h(t,i);return a!==null?ge(a,t,n,r):e}let o={};for(let[i,a]of Object.entries(e))o[i]=ge(a,t,n,r);return r.delete(e),n.set(e,o),o}function Jt(e){return Object.entries(e??{})}function jt(e){return e.order??Number.MAX_VALUE}function io(e){return e!==void 0&&d(e)&&Object.keys(e).length>0}function Qt(e,t){let n={};for(let[r,o]of Jt(t))n[`${e}-${r}`]=o;return n}function ao(e){return Qt(mt,e)}function lo(e){return Qt(pt,e)}function en(e,t){let n=ao(e.advanced?.aria);return t&&t.length>0&&(n[ut]="true",n[ct]=`${e.name}-error`),n}function tn(e){return lo(e.advanced?.data)}var nn={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},rn={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function on(e,t=2){return nn[e&&e in nn?e:t]}function an(e){if(e&&e in rn)return rn[e]}import{z as f}from"zod";function m(e,t){return e?t?t[e]??e:e:""}var so=[[fe,po],[Pt,co],[de,go],[ue,yo],[g,uo],[C,fo]];function sn(e,t=[],n){let r=f.object(e);return t.length===0?r:To(r,t,n)}function cn(e){let t={},n=f.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function un(e,t){for(let[n,r]of so)if(n(e))return r(e,t);return mo(e,t)}function co(e,t){let n=f.string().trim();if(e.required){let r=B(e,t),o=n.min(1,r).pipe(ln(e,t));return f.preprocess(i=>se(i)?"":i,o)}return n.pipe(ln(e,t)).or(f.literal("")).nullable()}function uo(e,t){let n=f.coerce.boolean();return e.required?(n=n.refine(r=>r===!0,{message:B(e,t)}),f.preprocess(r=>r===null?!1:r,n)):n.nullable()}function fo(e,t){let n=f.coerce.string();return e.required?(n=n.min(1,B(e,t)),f.preprocess(r=>se(r)?"":r,n)):n.or(f.literal("")).nullable()}function mo(e,t){let n=f.coerce.string().trim();return n=dn(n,e,t),e.required?(n=fn(n,e,t),f.preprocess(r=>se(r)?"":r,n)):n.nullable()}function po(e,t){let n=f.coerce.number().int();return n=dn(n,e,t),e.required?(n=fn(n,e,t),f.preprocess(r=>r===null?void 0:r,n)):n.nullable()}function go(e,t){return e.required?f.preprocess(bo,f.coerce.number({message:B(e,t)}).int()):f.coerce.number().int().nullable()}function yo(e,t){let n=B(e,t),r=f.coerce.number().int().min(1,n).max(12,n);return e.required?r:r.nullable()}function bo(e){return e===null||e===""?void 0:e}function ln(e,t){let n=e.validation?.email?m(e.validation?.email,t):void 0;return f.email(n)}function dn(e,t,n){return e=xo(e,t,n),e=ho(e,t,n),e}function fn(e,t,n){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,B(t,n)):e}var xo=(e,t,n)=>mn(e,t,ie,n),ho=(e,t,n)=>mn(e,t,ae,n);function mn(e,t,n,r){let o=t.advanced?.length?.[n];if(o!==void 0){let i=t.validation?.length?.[n]?m(t.validation?.length?.[n],r):void 0;return e[n](o,i)}return e}function To(e,t=[],n){let r=So(t);return r.length===0?e:e.superRefine((o,i)=>{for(let{name:a,rule:l}of r)if(!Ro(o,a,l)){let s=m(l.message,n);i.addIssue({code:"custom",message:s,path:[a]})}})}function Ro(e,t,n){let r=n.operator??"eq",o=W[r];return o?o(e[t],e[n.field]):!1}function So(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 pn(e,t,n,r){let o=[],i=Array.isArray(t)?t:[t];for(let a of i){let l=a.operator??"eq",s=W[l];if(s&&!s(e,n(a.field))&&a.message){let c=m(a.message,r);o.push(c)}}return o}function B(e,t){return e.validation?.required?m(e.validation?.required,t):void 0}function gn(e,t){if(!t||!Co(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||Ao(r);return t.some(a=>!(a.protocol&&a.protocol!==r||a.hostname&&a.hostname!==o||a.port!==void 0&&String(a.port)!==i))}catch{return!1}}function Ao(e){return e==="https"?"443":"80"}function Co(e){return/^(https?:)?\/\//.test(e)}function yn(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,le);new URL(t,le).searchParams.forEach((i,a)=>{n.searchParams.set(a,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(le,""):o}catch{return t||e}}function bn(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=yn(t.url,n.url),o=Eo(t,n),i=Fo(t,n);return{...t,...n,url:r,body:o,headers:i}})}function Eo(e,t){return d(t.body)&&d(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Fo(e,t){return d(t.headers)&&d(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function be(e,t){return{...e,...t}}import{twMerge as No}from"tailwind-merge";import{jsx as ko}from"react/jsx-runtime";function xe(e){let t=e.errors&&e.errors.length>0;return ko("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[dt]:"true"},...e.disabled&&{[ft]:"true"},"data-orientation":e.orientation,className:No("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&&(e.isReversed?"flex-row-reverse!":"flex-row!"),"data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",e.className),children:e.children})}import{twMerge as vo}from"tailwind-merge";import{jsx as Io}from"react/jsx-runtime";function xn(e){return Io(xe,{...e,orientation:N,className:vo("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 Po}from"react/jsx-runtime";function hn(e){return Po(xe,{...e,orientation:U,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 Tn}from"react/jsx-runtime";function Rn(e){let t=me(e.field),n=g(e.field),r=Ut(e.field);return e.orientation===N?Tn(xn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children}):Tn(hn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children})}function Sn(e){if(!e.field.type)return null;let t=Ht(e.field,e.disabled),n=tn(e.field),r=en(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{twMerge as Oo}from"tailwind-merge";import{jsx as Le,jsxs as Vo}from"react/jsx-runtime";function An(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=be(e.style,{orientation:_t(e.field)}),o=Bt(e.field,e.disabled);return Vo("div",{className:Oo("flex flex-col gap-3",an(t)),children:[Le(Rn,{disabled:o,errors:n,field:e.field,orientation:r,children:Le(Sn,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),Le(ze,{errors:n,name:e.field.name})]})}import{atom as w}from"jotai";import{atomFamily as Cn}from"jotai-family";import{deepEqual as Me}from"fast-equals";function Do(e){return Cn(t=>w(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let a=i[t];(!a||!Me(a,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:a,...l}=i;r(e,l)}}))}function Lo(e){return w(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function Mo(e){return w(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);a&&n(e,i)})}function _o(e){return w(null,(t,n,r)=>{let o=t(e);Me(o,r)||n(e,r)})}function En(e,t={}){let{merge:n,validateTarget:r}=t;return Cn(o=>w(i=>{let a=i(e)[o];if(a&&n)return n(Object.values(a))},(i,a,l,s)=>{if(r&&!r(l))return;let c=i(e),u={...c[l]??{}};if(s!=null){let y=u[o];(!y||!Me(y,s))&&(u[o]=s,a(e,{...c,[l]:u}))}else if(u[o])if(delete u[o],Object.keys(u).length===0){let{[l]:y,...F}=c;a(e,F)}else a(e,{...c,[l]:u})}))}function Fn(e){return w(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);for(let l in i){let s={...i[l]},c=!1;for(let u of r)s[u]&&(delete s[u],c=!0,a=!0);c&&(Object.keys(s).length===0?delete i[l]:i[l]=s)}a&&n(e,i)})}function G(e={}){let t=w(e);return{atom:t,clearAll:Lo(t),clear:Mo(t),bulkReport:_o(t),report:Do(t)}}var _e=G(),Nn=_e.clear,kn=_e.bulkReport,he=_e.report;import{useAtomValue as Uo}from"jotai";import{jsx as Bo}from"react/jsx-runtime";function vn(e){return n=>{let r=Uo(he(n.field.name));return Bo(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}var In=G(),wn=In.atom,Pn=In.report;import{useAtomValue as Go}from"jotai";import{jsx as Yo}from"react/jsx-runtime";function On(e){return n=>{let r=Go(Pn(n.field.name));if(r?.hidden??n.field.hidden??!1)return null;let i=r?.disabled??n.disabled;return Yo(e,{...n,disabled:i})}}var Vn=On(vn(An));import{jsx as Xo}from"react/jsx-runtime";function Dn(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return Xo("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as Ho}from"react/jsx-runtime";function z(e){return Ho("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})}import{jsx as qo}from"react/jsx-runtime";function j(e){return Et(e,(t,n,r)=>qo("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}import{Fragment as $o,jsx as Ln,jsxs as Zo}from"react/jsx-runtime";function Mn(e){return Zo($o,{children:[e.title&&Ln("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:j(e.title)}),e.description&&Ln("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:j(e.description)})]})}import{jsx as Ue,jsxs as Wo}from"react/jsx-runtime";function _n(e){let t=e.section.fields||[],{compact:n}=be(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?Ue(z,{compact:n,children:e.children}):Wo("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:[Ue(Mn,{description:e.section.description,title:e.section.title}),Ue(z,{compact:n,children:e.children})]})}import{Fragment as Ko}from"react";import{jsx as Un}from"react/jsx-runtime";function Bn(){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 J,jsxs as Gn}from"react/jsx-runtime";function Yn(e){let t=ye(e.sections,e.definition);return J("div",{className:"h-full w-full",children:J("form",{noValidate:e.noValidate,action:e.action,children:Gn(z,{children:[t.map((n,r)=>Gn(Ko,{children:[J(_n,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&J(Bn,{})]},r)),e.control&&J(Dn,{isPending:e.isPending,children:e.control})]})})})}import{jsx as zo}from"react/jsx-runtime";function Xn(e){return zo("p",{className:"-mt-2 text-xs leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as jo}from"react/jsx-runtime";function Te(e){let t=j(e.text);return t?jo(Xn,{children:t}):null}import{twMerge as Jo}from"tailwind-merge";import{jsx as Qo,jsxs as ei}from"react/jsx-runtime";function Hn(e){let t=e.style?.showOptionalLabel??!0,n=C(e.field)||g(e.field);return ei("label",{"data-slot":"field-label","data-normal":n,className:Jo("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,t&&!e.field.required&&Qo("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:m("(Optional)",e.translations)})]})}import{jsx as qn,jsxs as ti}from"react/jsx-runtime";function $n(e){let t=I(e.field.label)?T(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=I(e.field.description)?T(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return ti("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[qn(Hn,{field:e.field,style:e.config?.style,translations:e.translations,children:m(t,e.translations)}),e.orientation===U&&qn(Te,{text:m(n,e.translations)})]})}import{Fragment as ni,jsx as Zn,jsxs as ri}from"react/jsx-runtime";function Wn(e){return ri(ni,{children:[e.field.name&&e.field.label&&Zn($n,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations}),e.children,e.orientation===N&&e.field.description&&Zn(Te,{text:m(e.field.description,e.translations)})]})}function Re(e,t){return e?t(e):null}import{useCallback as Ce,useRef as Be,useTransition as hi}from"react";import{atom as oi}from"jotai";var ii=e=>{let t=bn(e);if(t)return t},ai=e=>e.trim()!=="",Kn=oi({}),zn=En(Kn,{merge:ii,validateTarget:ai}),jn=Fn(Kn);import{useAtom as ci}from"jotai";import li from"swr";function Jn(e=null,t,n=!1){let{data:r,error:o}=li(si(e,t,n),t.fetcher.provider);if(o&&Z.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return Rt(r,e.namespace)}return null}function si(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!I(e.url)){if(gn(e.url,t.fetcher.remotePatterns))return e;Z.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Qn(e,t,n){let r=Wt(e,n),[o,i]=ci(zn(e.name));return[Jn(o??r,t,e.disabled),i]}import{useEffect as ui,useEffectEvent as er,useMemo as di}from"react";function tr(e,t,n,r){let{name:o}=e,i=di(()=>un(e,r),[e,r]),a=er(s=>{s&&t(s,i,e)}),l=er(s=>{s&&n(s)});return ui(()=>(a(o),()=>{l(o)}),[o]),i}import{useSetAtom as Ge,useStore as Ti}from"jotai";import{useCallback as fi,useEffect as mi,useRef as pi}from"react";function nr(){let e=pi(null);mi(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return fi((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var Se=G(),rr=Se.atom,or=Se.clearAll,ir=Se.clear,Ae=Se.report;import{useAtom as gi}from"jotai";import{useCallback as yi,useEffect as bi,useRef as xi}from"react";function ar(e,t){let{name:n}=e,r=xi(!1),[o,i]=gi(Ae(n));bi(()=>{if(!t||!(n in t))return;let l=t[n];K(l)&&(r.current=!0,i(l))},[n,t,i]);let a=yi(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:a,value:o}}import{jsx as lr}from"react/jsx-runtime";function sr(e){let t=e.field.advanced?.entity,n=Ti(),r=nr(),[,o]=hi(),{setValue:i,shouldSkipOnChange:a,value:l}=ar(e.field,e.value),s=Be(l);s.current=l;let c=Be(e.translations);c.current=e.translations;let u=Lt(e.field),y=me(e.field),F=Ge(rr),Y=Ge(wn),ee=Ge(he(e.field.name)),[X,P]=Qn(e.field,e.config,l),S=tr(e.field,e.onMount,e.onUnmount,e.translations),H=m(e.commonProps.placeholder,e.translations),b={...e.commonProps,placeholder:H},{commonPropsWithOptions:Rr,defaultValue:Sr}=Kt(e.field,b,X,l),Ze=Be(null);Ze.current=p=>{i(p),e.onValueChange&&e.onValueChange({name:e.field.name,value:p})};let Ar=zt(e.field,Sr),te=Ce(p=>{let O=S.safeParse(p).error?.issues.map(q=>q.message)??[],V=e.field.validation?.custom,Ee=V?pn(p,V,q=>n.get(Ae(q)),c.current):[];ee([...O,...Ee])},[e.field.validation?.custom,S,ee,n]),We=Ce((p,x)=>{if(u){r(()=>{x({value:p})},500);return}let O=Tt(p,X,t);x(O)},[X,t,u,r]),Cr=Ce(p=>{let x=p.target.value;if(a()&&(!u||x===s.current))return;Ze.current?.(x),e.config.validation.change&&te(x);let O=e.field.event?.change;O&&We(x,V=>{Ft(O,({sources:Ee,states:q,values:Fr})=>{o(()=>{Nt(V,Ee,(D,L)=>P(D,L)),vt(V,q,(D,L)=>{Y(ne=>{if(L)return{...ne,[D]:L};let{[D]:Vi,...Nr}=ne;return Nr})}),It(V,Fr,(D,L)=>{F(ne=>({...ne,[D]:L}))})})})})},[We,u,e.config.validation.change,e.field.event?.change,Y,P,F,a,te]),Er=Ce(p=>{if(!y){let x=p.target.value;e.config.validation.blur&&te(x)}},[y,e.config.validation.blur,te]);return Re(e.config.inputs[e.field.type],p=>lr(Wn,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations,children:lr(p,{...Rr,...e.ariaAttributes,...e.dataAttributes,...Ar,onBlur:Er,onChange:Cr})}))}import{twMerge as Ri}from"tailwind-merge";import{jsx as cr}from"react/jsx-runtime";function ur(e){let t=on(e.column?.advanced?.cols);return cr("div",{className:"flex w-full flex-col gap-4",children:cr("div",{className:Ri("grid grid-cols-1 gap-3 sm:gap-4",t),children:e.children})})}import{Fragment as Si}from"react";import{jsx as Ye,jsxs as Ai}from"react/jsx-runtime";function Xe(e){let{column:t,field:n}=e.components;return ye(e.fields).map((r,o)=>Ai(Si,{children:[Ot(r)&&Ye(t,{column:r,children:Ye(Xe,{...e,fields:r.fields})}),Vt(r)&&Ye(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}import{jsx as Ci}from"react/jsx-runtime";function dr(e){return n=>Ci(Xe,{...n,components:{column:ur,field:e}})}import{useSetAtom as fr}from"jotai";import{startTransition as mr,useActionState as Ei}from"react";function gr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},a=fr(kn),l=fr(or),s={data:null,error:null,success:!1},[c,u,y]=Ei(async(F,Y)=>{let[ee,X]=e(),P=sn(ee,X,n?.translations);if(i===!1)return t?await t(Y,P):F;let S=Ct(Y),H=P.safeParse(S);if(!H.success){let b=cn(H.error);return mr(()=>{a(b)}),He(S,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let b=await t(S,P);return b.success?(r?.(b.data),o||mr(()=>{l()}),pr(S,o)):He(S,b.error)}catch(b){return Z.error("Error executing form action:",b),He(S,{title:"An unexpected error occurred submitting the form.",details:Fi(b)})}return pr(H.data,o)},s);return[u,c,y]}function Fi(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function pr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function He(e,t){return{data:e,error:t,success:!1}}import{startTransition as ki,useCallback as br,useRef as $e}from"react";import{useCallback as Ni}from"react";import{useSetAtom as qe}from"jotai";function yr(){let e=qe(Nn),t=qe(jn),n=qe(ir);return Ni(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function xr(){let e=yr(),t=$e({}),n=$e([]),r=$e(new Set),o=br((l,s,c)=>{l in t.current||(t.current[l]=s,n.current.push(c))},[]),i=br(l=>{t.current[l]&&(delete t.current[l],n.current=n.current.filter(s=>s.name!==l),r.current.add(l),ki(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function a(){return[t.current,n.current]}return[a,o,i]}import{Fragment as Ii,jsx as Q,jsxs as wi}from"react/jsx-runtime";var vi=dr(Vn);function hr(e){let t=e.translations?.[e.lang??""],[n,r,o]=xr(),[i,a,l]=gr(n,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit,translations:t}),s=e.config.validation.showError&&!a.success&&a.error,c=a.data??e.value;return wi(Ii,{children:[s&&Re(e.config.alert,u=>Q("div",{className:"mb-4 w-full",children:Q(u,{description:a.error?.description,details:a.error?.details,title:a.error.title})})),Q(Yn,{action:i,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:u,fields:y})=>Q(vi,{disabled:u,fields:y,style:e.config.style,children:F=>Q(sr,{...F,config:e.config,context:e.context,onMount:r,onUnmount:o,onValueChange:e.onValueChange,translations:t,value:c})})})]})}import{Provider as Pi}from"jotai";import{jsx as Tr}from"react/jsx-runtime";function Oi(e){return Tr(Pi,{children:Tr(hr,{...e})})}export{Oi as Form};
|
|
1
|
+
import{jsx as Ke}from"react/jsx-runtime";function ze(e){return!e.errors||e.errors.length===0?null:Ke("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)=>Ke("li",{children:t},e.name?`${e.name}-error-${n}`:n))})}var re="input",je="input/email",Je="input/number";var Qe="textarea",et="radio",tt="checkbox",nt="select",rt="select/month",ot="select/year";var Fe="column";var it="label",_="value",oe="options",Ne="email",at="number",lt="password",st="tel",Z="text",ct="aria-errormessage",ut="aria-invalid",dt="data-invalid",ft="data-readonly",mt="aria",gt="data",ie="min",ae="max",pt="minLength",yt="maxLength",U="$ref";var bt="source",xt="state",le="http://luna.internal",k="vertical",G="horizontal";function d(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function se(e){return e==null||e===""}function I(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function C(e){return typeof e=="string"}function ht(e){return d(e)&&"url"in e}var kr=/[^/]+$/;function Tt(e,t=[],n=_){if(Array.isArray(t))return t.find(r=>{let o=ke(r,n);if(o!==void 0&&`${o}`===e)return r})??{value:e}}function ke(e,t=_){if(e!=null){if(I(e))return e;if(d(e)){let n=Ir(e,t);if(I(n))return n}}}function Ir(e,t){let n=T(e,t);if(I(n))return n}function Rt(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||!d(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(d(r)&&o in r)r=r[o];else return null;return r}function St(e,t={label:it,value:_}){return e.map(n=>{if(d(n)){let r=T(n,t.label),o=T(n,t.value);if(I(r)&&I(o))return{label:`${r}`,value:`${o}`}}return n})}function At(e=Z){if(e){let t=e.match(kr);if(t){let[n]=t;if(n!==re)return n.trim().toLowerCase()}}return Z}function Ct(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 vr=/\[([^\]]+)\]\(([^)]+)\)/g;function R(e,t={}){if(C(e))return wr(e,t);if(Array.isArray(e))return e.map(n=>R(n,t));if(d(e)){let n={};for(let r in e)n[r]=R(e[r],t);return n}return e}function w(e){return C(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>w(t)):d(e)?Object.values(e).some(t=>w(t)):!1}function wr(e,t={}){return e.replace(/{([^}]+)}/g,(n,r)=>{let o=r.includes(".")?T(t,r):t[r];return I(o)?String(o):n})}function Et(e,t){if(!e||e.trim().length===0)return null;let n,r=0,o=!1,i=[];for(;(n=vr.exec(e))!==null;){let[a,l,s]=n,u=n.index;o=!0,u>r&&i.push(e.substring(r,u));let c=t?t(u,s,l):a;i.push(c),r=u+a.length}return o?(r<e.length&&i.push(e.substring(r)),i):e}var b={error:(...e)=>{Ie()&&!ve()&&ce().error("[Luna Form]",...e)},warn:(...e)=>{Ie()&&!ve()&&ce().warn("[Luna Form]",...e)},info:(...e)=>{Ie()&&!ve()&&ce().info("[Luna Form]",...e)}},Ie=()=>typeof ce()<"u",ve=()=>!0,ce=()=>globalThis.console;function Ft(e=[],t){let n=[],r=[],o=[];e.forEach(i=>{i.action===_&&n.push(i),i.action===bt&&r.push(i),i.action===xt&&o.push(i)}),t({sources:r,states:o,values:n})}function Nt(e=null,t=[],n){t.forEach(r=>{let{target:o,source:i}=r;if(!e){n(o,void 0);return}if(ht(i)){let a=R(i.url,e),l=i.body?R(i.body,e):i.body;n(o,{...i,url:a,body:l})}})}var W={eq:Lr,gt:Gr,gte:Br,in:_r,lt:Yr,lte:Xr,neq:Mr,nin:Ur},Pr=/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/,kt=/^(\d{2})[/-](\d{2})[/-](\d{4})(?: (\d{2}):(\d{2})(?::(\d{2}))?)?$/;function Or(e){return typeof e=="string"&&Pr.test(e)}function Vr(e){return typeof e=="string"&&kt.test(e)}function Dr(e){let t=e.match(kt);if(t){let[,n,r,o,i,a,l]=t;return new Date(Number(o),Number(r)-1,Number(n),Number(i??0),Number(a??0),Number(l??0)).getTime()}return NaN}function v(e){return Or(e)?new Date(e).getTime():Vr(e)?Dr(e):Number(e)}function Lr(e,t){return e===t}function Mr(e,t){return e!==t}function _r(e,t){return Array.isArray(t)&&t.includes(String(e))}function Ur(e,t){return Array.isArray(t)&&!t.includes(String(e))}function Gr(e,t){return v(e)>v(t)}function Br(e,t){return v(e)>=v(t)}function Yr(e,t){return v(e)<v(t)}function Xr(e,t){return v(e)<=v(t)}function It(e=null,t=[],n){t.forEach(r=>{let{target:o,state:i,when:a}=r;if(!e){n(o);return}let l=Hr(e,a);n(o,l?i:void 0)})}function Hr(e,t){if(t===void 0)return!0;if(C(t))return we(e,"value")===t;if(Array.isArray(t)){let n=we(e,"value");return t.includes(String(n))}return qr(e,t)}function qr(e=null,t){let n=we(e,t.field??"value"),{operator:r="eq",value:o}=t,i=W[r];return i?i(n,o):!1}function we(e,t){return d(e)?t.includes(".")?T(e,t):e[t]:e}function vt(e=null,t=[],n){t.forEach(r=>{Object.entries(r.value).forEach(([o,i])=>{n(o,e?R(i,e):void 0)})})}var ue=e=>S(rt)(e),de=e=>S(ot)(e),x=S(tt),Pe=S(re),E=S(et),F=S(nt),Oe=S(Qe),wt=S(Z,Ne,lt,st),Pt=S(je,Ne),fe=S(Je,at);function me(e){return E(e)||x(e)}function Ot(e){return e.type===Fe}function Vt(e){return e.type!==Fe}function Dt(e){return F(e)||E(e)}function Lt(e){return Pe(e)||Oe(e)}function K(e){return e!=null&&e!==""}function S(...e){return t=>{let n=C(t.type)?t.type:void 0;return n?e.some(r=>n===r||n?.startsWith(`${r}/`)):!1}}function Mt(e,t={}){if(F(e)&&e.disabled){let n=e.name?t?.[e.name]:void 0;if(n&&d(n))return[n]}}function _t(e){return E(e)||x(e)?G:e.advanced?.orientation??k}function Ut(e){return x(e)?e.advanced?.reverse!==!1:!1}function Gt(e,t){let n=e.readonly??!1;return t||n}function Bt(e){if(E(e)||F(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||d(t)&&!(U in t))return t}}var $r=/^\d+$/;function Yt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Xt(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 Ve(){return new Date().getFullYear()}function De(e,t){if(typeof e=="number")return e;let n=t??Ve(),r=e.trim().toLowerCase();if(r.startsWith("current")){let o=r.match(/^current([+-])(\d+)$/);if(o){let[,i,a]=o,l=parseInt(a,10);if(!isNaN(l))return i==="+"?n+l:n-l}return n}return $r.test(r)?parseInt(r,10):n}var ge=Ve();function Zr(e){if(F(e))return Wr(e)}function Wr(e){if(ue(e))return Yt();if(de(e)){let t=e.advanced?.length?.min??ge,n=e.advanced?.length?.max??ge+5;return Xt(De(t,ge),De(n,ge))}}function Ht(e,t=!1){let n={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Pe(e)?{...n,...Kr(e)}:F(e)?{...n,...zr(e)}:Oe(e)?{...n,...jr(e)}:n}function Kr(e){let t=At(e.type),n={...e,type:t};return{...qt(e),...Jr(n),...wt(n)?$t(n):{},type:t}}function zr(e){let t=Zr(e);return t?{options:t}:{}}function jr(e){return{...qt(e),...$t(e)}}function qt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function Jr(e){return fe(e)?Qr(e):{}}function $t(e){return Zt(e,{min:pt,max:yt})}function Qr(e){return Zt(e,{min:ie,max:ae})}function Zt(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 Wt(e,t){let n=Bt(e);return n||Mt(e,t)}function eo(e,t){let n=d(t)&&e.name in t?t[e.name]:t;return ke(n,e.advanced?.entity)}function to(e,t,n){return Dt(e)&&Array.isArray(n)?{...t,[oe]:n}:t}function no(e,t,n){if(e.required&&!K(n)&&F(e)&&e.advanced?.preselected!==!1&&oe in t){let r=t[oe];if(Array.isArray(r)&&r.length===1)return r[0]}return n}function ro(e,t){return F(e)&&Array.isArray(t)?St(t,e.advanced?.options):t}function Kt(e,t,n,r){let o=eo(e,r),i=Array.isArray(n)?ro(e,n):n,a=to(e,t,i),l=no(e,a,o);return{commonPropsWithOptions:a,defaultValue:l}}function zt(e,t){return x(e)?{checked:K(t)?t:!1}:{value:t??""}}var oo=/^#\/definition\//;function ye(e=[],t){let n=pe(e,t);return Array.isArray(n)?n.sort((r,o)=>jt(r)-jt(o)):[]}function pe(e,t,n=new Map,r=new WeakSet){if(!io(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=>pe(i,t,n,r));if(U in e&&C(e[U])){let i=e[U].replace(oo,""),a=T(t,i);return a!==null?pe(a,t,n,r):e}let o={};for(let[i,a]of Object.entries(e))o[i]=pe(a,t,n,r);return r.delete(e),n.set(e,o),o}function Jt(e){return Object.entries(e??{})}function jt(e){return e.order??Number.MAX_VALUE}function io(e){return e!==void 0&&d(e)&&Object.keys(e).length>0}function Qt(e,t){let n={};for(let[r,o]of Jt(t))n[`${e}-${r}`]=o;return n}function ao(e){return Qt(mt,e)}function lo(e){return Qt(gt,e)}function en(e,t){let n=ao(e.advanced?.aria);return t&&t.length>0&&(n[ut]="true",n[ct]=`${e.name}-error`),n}function tn(e){return lo(e.advanced?.data)}var nn={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},rn={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function on(e,t=2){return nn[e&&e in nn?e:t]}function an(e){if(e&&e in rn)return rn[e]}import{z as f}from"zod";function m(e,t){return e?t?t[e]??e:e:""}var so=[[fe,go],[Pt,co],[de,po],[ue,yo],[x,uo],[E,fo]];function sn(e,t=[],n){let r=f.object(e);return t.length===0?r:To(r,t,n)}function cn(e){let t={},n=f.flattenError(e).fieldErrors;for(let[r,o]of Object.entries(n))o!==void 0&&(t[r]=o);return t}function un(e,t){for(let[n,r]of so)if(n(e))return r(e,t);return mo(e,t)}function co(e,t){let n=f.string().trim();if(e.required){let r=B(e,t),o=n.min(1,r).pipe(ln(e,t));return f.preprocess(i=>se(i)?"":i,o)}return n.pipe(ln(e,t)).or(f.literal("")).nullable()}function uo(e,t){let n=f.coerce.boolean();return e.required?(n=n.refine(r=>r===!0,{message:B(e,t)}),f.preprocess(r=>r===null?!1:r,n)):n.nullable()}function fo(e,t){let n=f.coerce.string();return e.required?(n=n.min(1,B(e,t)),f.preprocess(r=>se(r)?"":r,n)):n.or(f.literal("")).nullable()}function mo(e,t){let n=f.coerce.string().trim();return n=dn(n,e,t),e.required?(n=fn(n,e,t),f.preprocess(r=>se(r)?"":r,n)):n.nullable()}function go(e,t){let n=f.coerce.number().int();return n=dn(n,e,t),e.required?(n=fn(n,e,t),f.preprocess(r=>r===null?void 0:r,n)):n.nullable()}function po(e,t){return e.required?f.preprocess(bo,f.coerce.number({message:B(e,t)}).int()):f.coerce.number().int().nullable()}function yo(e,t){let n=B(e,t),r=f.coerce.number().int().min(1,n).max(12,n);return e.required?r:r.nullable()}function bo(e){return e===null||e===""?void 0:e}function ln(e,t){let n=e.validation?.email?m(e.validation?.email,t):void 0;return f.email(n)}function dn(e,t,n){return e=xo(e,t,n),e=ho(e,t,n),e}function fn(e,t,n){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,B(t,n)):e}var xo=(e,t,n)=>mn(e,t,ie,n),ho=(e,t,n)=>mn(e,t,ae,n);function mn(e,t,n,r){let o=t.advanced?.length?.[n];if(o!==void 0){let i=t.validation?.length?.[n]?m(t.validation?.length?.[n],r):void 0;return e[n](o,i)}return e}function To(e,t=[],n){let r=So(t);return r.length===0?e:e.superRefine((o,i)=>{for(let{name:a,rule:l}of r)if(!Ro(o,a,l)){let s=m(l.message,n);i.addIssue({code:"custom",message:s,path:[a]})}})}function Ro(e,t,n){let r=n.operator??"eq",o=W[r];return o?o(e[t],e[n.field]):!1}function So(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 gn(e,t,n,r){let o=[],i=Array.isArray(t)?t:[t];for(let a of i){let l=a.operator??"eq",s=W[l];if(s&&!s(e,n(a.field))&&a.message){let u=m(a.message,r);o.push(u)}}return o}function B(e,t){return e.validation?.required?m(e.validation?.required,t):void 0}function pn(e,t){if(!t||!Co(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||Ao(r);return t.some(a=>!(a.protocol&&a.protocol!==r||a.hostname&&a.hostname!==o||a.port!==void 0&&String(a.port)!==i))}catch{return!1}}function Ao(e){return e==="https"?"443":"80"}function Co(e){return/^(https?:)?\/\//.test(e)}function yn(e,t){try{if(!e)return t;if(!t)return e;let n=new URL(e,le);new URL(t,le).searchParams.forEach((i,a)=>{n.searchParams.set(a,i)});let o=n.toString();return e.startsWith("/")||!e.includes("://")?o.replace(le,""):o}catch{return t||e}}function bn(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,n)=>{let r=yn(t.url,n.url),o=Eo(t,n),i=Fo(t,n);return{...t,...n,url:r,body:o,headers:i}})}function Eo(e,t){return d(t.body)&&d(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Fo(e,t){return d(t.headers)&&d(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function be(e,t){return{...e,...t}}import{twMerge as No}from"tailwind-merge";import{jsx as ko}from"react/jsx-runtime";function xe(e){let t=e.errors&&e.errors.length>0;return ko("div",{"data-slot":"field","data-clickable":e.isClickable?"true":"false",...t&&{[dt]:"true"},...e.disabled&&{[ft]:"true"},"data-orientation":e.orientation,className:No("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&&(e.isReversed?"flex-row-reverse!":"flex-row!"),"data-[clickable=true]:has-[>[data-slot=field-content]]:[&>:first-child]:mt-px",e.className),children:e.children})}import{twMerge as Io}from"tailwind-merge";import{jsx as vo}from"react/jsx-runtime";function xn(e){return vo(xe,{...e,orientation:k,className:Io("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 Po}from"react/jsx-runtime";function hn(e){return Po(xe,{...e,orientation:G,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 Tn}from"react/jsx-runtime";function Rn(e){let t=me(e.field),n=x(e.field),r=Ut(e.field);return e.orientation===k?Tn(xn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children}):Tn(hn,{disabled:e.disabled,errors:e.errors,isCheckbox:n,isReversed:r,isClickable:t,children:e.children})}function Sn(e){if(!e.field.type)return null;let t=Ht(e.field,e.disabled),n=tn(e.field),r=en(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{twMerge as Oo}from"tailwind-merge";import{jsx as Le,jsxs as Vo}from"react/jsx-runtime";function An(e){let t=e.field.advanced?.cols,n=e.field.name?e.errors?.[e.field.name]:void 0,{orientation:r}=be(e.style,{orientation:_t(e.field)}),o=Gt(e.field,e.disabled);return Vo("div",{className:Oo("flex flex-col gap-3",an(t)),children:[Le(Rn,{disabled:o,errors:n,field:e.field,orientation:r,children:Le(Sn,{disabled:o,errors:n,field:e.field,orientation:r,children:e.children})}),Le(ze,{errors:n,name:e.field.name})]})}import{atom as P}from"jotai";import{atomFamily as Cn}from"jotai-family";import{deepEqual as Me}from"fast-equals";function Do(e){return Cn(t=>P(n=>n(e)[t]??void 0,(n,r,o)=>{let i=n(e);if(o!=null){let a=i[t];(!a||!Me(a,o))&&r(e,{...i,[t]:o})}else if(i[t]){let{[t]:a,...l}=i;r(e,l)}}))}function Lo(e){return P(null,(t,n)=>{let r=t(e);r&&Object.keys(r).length>0&&n(e,{})})}function Mo(e){return P(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);a&&n(e,i)})}function _o(e){return P(null,(t,n,r)=>{let o=t(e);Me(o,r)||n(e,r)})}function En(e,t={}){let{merge:n,validateTarget:r}=t;return Cn(o=>P(i=>{let a=i(e)[o];if(a&&n)return n(Object.values(a))},(i,a,l,s)=>{if(r&&!r(l))return;let u=i(e),c={...u[l]??{}};if(s!=null){let y=c[o];(!y||!Me(y,s))&&(c[o]=s,a(e,{...u,[l]:c}))}else if(c[o])if(delete c[o],Object.keys(c).length===0){let{[l]:y,...N}=u;a(e,N)}else a(e,{...u,[l]:c})}))}function Fn(e){return P(null,(t,n,r)=>{let i={...t(e)},a=!1;for(let l of r)i[l]&&(delete i[l],a=!0);for(let l in i){let s={...i[l]},u=!1;for(let c of r)s[c]&&(delete s[c],u=!0,a=!0);u&&(Object.keys(s).length===0?delete i[l]:i[l]=s)}a&&n(e,i)})}function Y(e={}){let t=P(e);return{atom:t,clearAll:Lo(t),clear:Mo(t),bulkReport:_o(t),report:Do(t)}}var _e=Y(),Nn=_e.clear,kn=_e.bulkReport,he=_e.report;import{useAtomValue as Uo}from"jotai";import{jsx as Go}from"react/jsx-runtime";function In(e){return n=>{let r=Uo(he(n.field.name));return Go(e,{...n,errors:r?{[n.field.name]:r}:void 0})}}var vn=Y(),wn=vn.atom,Pn=vn.report;import{useAtomValue as Bo}from"jotai";import{jsx as Yo}from"react/jsx-runtime";function On(e){return n=>{let r=Bo(Pn(n.field.name));if(r?.hidden??n.field.hidden??!1)return null;let i=r?.disabled??n.disabled;return Yo(e,{...n,disabled:i})}}var Vn=On(In(An));import{jsx as Xo}from"react/jsx-runtime";function Dn(e){let t=typeof e.children=="function"?e.children({isPending:e.isPending}):e.children;return Xo("div",{"data-slot":"field-control",className:"w-full",children:t})}import{jsx as Ho}from"react/jsx-runtime";function z(e){return Ho("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})}import{jsx as qo}from"react/jsx-runtime";function j(e){return Et(e,(t,n,r)=>qo("a",{className:"underline",href:n,rel:"noopener noreferrer",target:"_blank",children:r},`${n}-${t}`))}import{Fragment as $o,jsx as Ln,jsxs as Zo}from"react/jsx-runtime";function Mn(e){return Zo($o,{children:[e.title&&Ln("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:j(e.title)}),e.description&&Ln("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:j(e.description)})]})}import{jsx as Ue,jsxs as Wo}from"react/jsx-runtime";function _n(e){let t=e.section.fields||[],{compact:n}=be(e.style,{compact:e.section.compact});return!e.section.title&&!e.section.description?Ue(z,{compact:n,children:e.children}):Wo("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:[Ue(Mn,{description:e.section.description,title:e.section.title}),Ue(z,{compact:n,children:e.children})]})}import{Fragment as Ko}from"react";import{jsx as Un}from"react/jsx-runtime";function Gn(){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 J,jsxs as Bn}from"react/jsx-runtime";function Yn(e){let t=ye(e.sections,e.definition);return J("div",{className:"h-full w-full",children:J("form",{noValidate:e.noValidate,action:e.action,children:Bn(z,{children:[t.map((n,r)=>Bn(Ko,{children:[J(_n,{section:n,style:e.config.style,children:e.children({disabled:e.readOnly,fields:n.fields})}),n.separator&&J(Gn,{})]},r)),e.control&&J(Dn,{isPending:e.isPending,children:e.control})]})})})}import{jsx as zo}from"react/jsx-runtime";function Xn(e){return zo("p",{className:"-mt-2 text-xs leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as jo}from"react/jsx-runtime";function Te(e){let t=j(e.text);return t?jo(Xn,{children:t}):null}import{twMerge as Jo}from"tailwind-merge";import{jsx as Qo,jsxs as ei}from"react/jsx-runtime";function Hn(e){let t=e.style?.showOptionalLabel??!0,n=E(e.field)||x(e.field);return ei("label",{"data-slot":"field-label","data-normal":n,className:Jo("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,t&&!e.field.required&&Qo("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:m("(Optional)",e.translations)})]})}import{jsx as qn,jsxs as ti}from"react/jsx-runtime";function $n(e){let t=w(e.field.label)?R(e.field.label,{context:e.context,env:e.config?.env}):e.field.label,n=w(e.field.description)?R(e.field.description,{context:e.context,env:e.config?.env}):e.field.description;return ti("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[qn(Hn,{field:e.field,style:e.config?.style,translations:e.translations,children:m(t,e.translations)}),e.orientation===G&&qn(Te,{text:m(n,e.translations)})]})}import{Fragment as ni,jsx as Zn,jsxs as ri}from"react/jsx-runtime";function Wn(e){return ri(ni,{children:[e.field.name&&e.field.label&&Zn($n,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations}),e.children,e.orientation===k&&e.field.description&&Zn(Te,{text:m(e.field.description,e.translations)})]})}function Re(e,t){return e?t(e):null}import{useCallback as Ce,useRef as Ge,useTransition as hi}from"react";import{atom as oi}from"jotai";var ii=e=>{let t=bn(e);if(t)return t},ai=e=>e.trim()!=="",Kn=oi({}),zn=En(Kn,{merge:ii,validateTarget:ai}),jn=Fn(Kn);import{useAtom as ci}from"jotai";import li from"swr";function Jn(e=null,t,n=!1){let{data:r,error:o}=li(si(e,t,n),t.fetcher.provider);if(o&&b.error("Error fetching data source:",o),e){if(Array.isArray(e))return e;if(r)return Rt(r,e.namespace)}return null}function si(e=null,t,n=!1){if(e&&!Array.isArray(e)&&!n&&e.url&&!w(e.url)){if(pn(e.url,t.fetcher.remotePatterns))return e;b.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Qn(e,t,n){let r=Wt(e,n),[o,i]=ci(zn(e.name));return[Jn(o??r,t,e.disabled),i]}import{useEffect as ui,useEffectEvent as er,useMemo as di}from"react";function tr(e,t,n,r){let{name:o}=e,i=di(()=>un(e,r),[e,r]),a=er(s=>{s&&t(s,i,e)}),l=er(s=>{s&&n(s)});return ui(()=>(a(o),()=>{l(o)}),[o]),i}import{useSetAtom as Be,useStore as Ti}from"jotai";import{useCallback as fi,useEffect as mi,useRef as gi}from"react";function nr(){let e=gi(null);mi(()=>()=>{e.current&&clearTimeout(e.current)},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}return fi((r,o)=>{t(),e.current=setTimeout(r,o)},[])}var Se=Y(),rr=Se.atom,or=Se.clearAll,ir=Se.clear,Ae=Se.report;import{useAtom as pi}from"jotai";import{useCallback as yi,useEffect as bi,useRef as xi}from"react";function ar(e,t){let{name:n}=e,r=xi(!1),[o,i]=pi(Ae(n));bi(()=>{if(!t||!(n in t))return;let l=t[n];K(l)&&(b.info("useValue: setting skipNextOnChange to true",{fieldName:n,newValue:l}),r.current=!0,i(l))},[n,t,i]);let a=yi(()=>r.current?(r.current=!1,!0):!1,[]);return{setValue:i,shouldSkipOnChange:a,value:o}}import{jsx as lr}from"react/jsx-runtime";function sr(e){let t=e.field.advanced?.entity,n=Ti(),r=nr(),[,o]=hi(),{setValue:i,shouldSkipOnChange:a,value:l}=ar(e.field,e.value),s=Ge(l);s.current=l;let u=Ge(e.translations);u.current=e.translations;let c=Lt(e.field),y=me(e.field),N=Be(rr),X=Be(wn),ee=Be(he(e.field.name)),[H,O]=Qn(e.field,e.config,l),A=tr(e.field,e.onMount,e.onUnmount,e.translations),q=m(e.commonProps.placeholder,e.translations),h={...e.commonProps,placeholder:q},{commonPropsWithOptions:Rr,defaultValue:Sr}=Kt(e.field,h,H,l),Ze=Ge(null);Ze.current=g=>{i(g),e.onValueChange&&e.onValueChange({name:e.field.name,value:g})};let Ar=zt(e.field,Sr),te=Ce(g=>{let V=A.safeParse(g).error?.issues.map($=>$.message)??[],D=e.field.validation?.custom,Ee=D?gn(g,D,$=>n.get(Ae($)),u.current):[];ee([...V,...Ee])},[e.field.validation?.custom,A,ee,n]),We=Ce((g,p)=>{if(c){r(()=>{p({value:g})},500);return}let V=Tt(g,H,t);p(V)},[H,t,c,r]),Cr=Ce(g=>{let p=g.target.value;if(b.info("onChange fired",{fieldName:e.field.name,fieldType:e.field.type,inputValue:p,currentValue:s.current,hasTextable:c,hasClickable:y}),a()&&(b.info("shouldSkipOnChange returned true",{fieldName:e.field.name,willSkip:!c||p===s.current,reason:c?"value unchanged":"not textable (checkbox/radio/select)"}),!c||p===s.current)){b.info("SKIPPING onChange",{fieldName:e.field.name});return}b.info("onChange processing",{fieldName:e.field.name,inputValue:p}),Ze.current?.(p),e.config.validation.change&&te(p);let V=e.field.event?.change;V&&We(p,D=>{Ft(V,({sources:Ee,states:$,values:Fr})=>{o(()=>{Nt(D,Ee,(L,M)=>O(L,M)),It(D,$,(L,M)=>{X(ne=>{if(M)return{...ne,[L]:M};let{[L]:Vi,...Nr}=ne;return Nr})}),vt(D,Fr,(L,M)=>{N(ne=>({...ne,[L]:M}))})})})})},[We,y,c,e.config.validation.change,e.field.event?.change,e.field.name,e.field.type,X,O,N,a,te]),Er=Ce(g=>{if(!y){let p=g.target.value;e.config.validation.blur&&te(p)}},[y,e.config.validation.blur,te]);return Re(e.config.inputs[e.field.type],g=>lr(Wn,{config:e.config,context:e.context,field:e.field,orientation:e.orientation,translations:e.translations,children:lr(g,{...Rr,...e.ariaAttributes,...e.dataAttributes,...Ar,onBlur:Er,onChange:Cr})}))}import{twMerge as Ri}from"tailwind-merge";import{jsx as cr}from"react/jsx-runtime";function ur(e){let t=on(e.column?.advanced?.cols);return cr("div",{className:"flex w-full flex-col gap-4",children:cr("div",{className:Ri("grid grid-cols-1 gap-3 sm:gap-4",t),children:e.children})})}import{Fragment as Si}from"react";import{jsx as Ye,jsxs as Ai}from"react/jsx-runtime";function Xe(e){let{column:t,field:n}=e.components;return ye(e.fields).map((r,o)=>Ai(Si,{children:[Ot(r)&&Ye(t,{column:r,children:Ye(Xe,{...e,fields:r.fields})}),Vt(r)&&Ye(n,{disabled:e.disabled,field:r,style:e.style,children:e.children})]},o))}import{jsx as Ci}from"react/jsx-runtime";function dr(e){return n=>Ci(Xe,{...n,components:{column:ur,field:e}})}import{useSetAtom as fr}from"jotai";import{startTransition as mr,useActionState as Ei}from"react";function pr(e,t,n){let{onSuccess:r,preserveValues:o=!1,validation:i=!0}=n??{},a=fr(kn),l=fr(or),s={data:null,error:null,success:!1},[u,c,y]=Ei(async(N,X)=>{let[ee,H]=e(),O=sn(ee,H,n?.translations);if(i===!1)return t?await t(X,O):N;let A=Ct(X),q=O.safeParse(A);if(!q.success){let h=cn(q.error);return mr(()=>{a(h)}),He(A,{description:"Please correct the errors and try again.",details:[],title:"There were validation errors submitting the form."})}if(t)try{let h=await t(A,O);return h.success?(r?.(h.data),o||mr(()=>{l()}),gr(A,o)):He(A,h.error)}catch(h){return b.error("Error executing form action:",h),He(A,{title:"An unexpected error occurred submitting the form.",details:Fi(h)})}return gr(q.data,o)},s);return[c,u,y]}function Fi(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function gr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function He(e,t){return{data:e,error:t,success:!1}}import{startTransition as ki,useCallback as br,useRef as $e}from"react";import{useCallback as Ni}from"react";import{useSetAtom as qe}from"jotai";function yr(){let e=qe(Nn),t=qe(jn),n=qe(ir);return Ni(r=>{let o=Array.isArray(r)?r:[r];e(o),t(o),n(o)},[e,t,n])}function xr(){let e=yr(),t=$e({}),n=$e([]),r=$e(new Set),o=br((l,s,u)=>{l in t.current||(t.current[l]=s,n.current.push(u))},[]),i=br(l=>{t.current[l]&&(delete t.current[l],n.current=n.current.filter(s=>s.name!==l),r.current.add(l),ki(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function a(){return[t.current,n.current]}return[a,o,i]}import{Fragment as vi,jsx as Q,jsxs as wi}from"react/jsx-runtime";var Ii=dr(Vn);function hr(e){let t=e.translations?.[e.lang??""],[n,r,o]=xr(),[i,a,l]=pr(n,e.action,{onSuccess:e.onSuccess,validation:e.config.validation.submit,translations:t}),s=e.config.validation.showError&&!a.success&&a.error,u=a.data??e.value;return wi(vi,{children:[s&&Re(e.config.alert,c=>Q("div",{className:"mb-4 w-full",children:Q(c,{description:a.error?.description,details:a.error?.details,title:a.error.title})})),Q(Yn,{action:i,config:e.config,control:e.children,definition:e.definition,isPending:l,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:c,fields:y})=>Q(Ii,{disabled:c,fields:y,style:e.config.style,children:N=>Q(sr,{...N,config:e.config,context:e.context,onMount:r,onUnmount:o,onValueChange:e.onValueChange,translations:t,value:u})})})]})}import{Provider as Pi}from"jotai";import{jsx as Tr}from"react/jsx-runtime";function Oi(e){return Tr(Pi,{children:Tr(hr,{...e})})}export{Oi as Form};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-luna-form",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
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.14",
|
|
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.5.0",
|
|
36
|
-
"@luna-form/core": "0.0.
|
|
36
|
+
"@luna-form/core": "0.0.23"
|
|
37
37
|
},
|
|
38
38
|
"license": "Apache-2.0",
|
|
39
39
|
"repository": {
|