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