react-luna-form 0.0.7 → 0.0.8

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.
@@ -1 +1 @@
1
- "use strict";var Ro=Object.create;var Z=Object.defineProperty;var Ao=Object.getOwnPropertyDescriptor;var So=Object.getOwnPropertyNames;var Eo=Object.getPrototypeOf,No=Object.prototype.hasOwnProperty;var Fo=(e,t)=>{for(var r in t)Z(e,r,{get:t[r],enumerable:!0})},Ue=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of So(t))!No.call(e,n)&&n!==r&&Z(e,n,{get:()=>t[n],enumerable:!(o=Ao(t,n))||o.enumerable});return e};var Io=(e,t,r)=>(r=e!=null?Ro(Eo(e)):{},Ue(t||!e||!e.__esModule?Z(r,"default",{value:e,enumerable:!0}):r,e)),Co=e=>Ue(Z({},"__esModule",{value:!0}),e);var sn={};Fo(sn,{Form:()=>xo});module.exports=Co(sn);var Xe=require("react/jsx-runtime");function Ge(e){return(0,Xe.jsx)("div",{"data-slot":"field-control",className:"w-full",children:e.children})}var Ye=require("react/jsx-runtime");function Y(e){return(0,Ye.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 z="input",He="input/email",qe="input/number";var $e="textarea",Ke="radio",We="checkbox",Ze="select",ze="select/month",je="select/year";var Ee="column";var Je="label",D="value",j="options",Ne="email",Qe="number",et="password",tt="tel",H="text",rt="aria-errormessage",ot="aria-invalid",nt="data-invalid",it="data-readonly",lt="aria",at="data",J="min",Q="max",ct="minLength",ut="maxLength",V="$ref",st="source";var ee="http://luna.internal",A="vertical",L="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function te(e){return e==null||e===""}function S(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function C(e){return typeof e=="string"}function dt(e){return c(e)&&"url"in e}var vo=/[^/]+$/;function mt(e,t=[],r=D){if(Array.isArray(t))return t.find(o=>{let n=Fe(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function Fe(e,t=D){if(e!=null){if(S(e))return e;if(c(e)){let r=Po(e,t);if(S(r))return r}}}function Po(e,t){let r=E(e,t);if(S(r))return r}function ft(e,t){if(Array.isArray(e))return e;let r=E(e,t);return Array.isArray(r)?r:null}function E(e,t){if(!t||!c(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(c(o)&&n in o)o=o[n];else return null;return o}function pt(e,t={label:Je,value:D}){return e.map(r=>{if(c(r)){let o=E(r,t.label),n=E(r,t.value);if(S(o)&&S(n))return{label:`${o}`,value:`${n}`}}return r})}function gt(e=H){if(e){let t=e.match(vo);if(t){let[r]=t;if(r!==z)return r.trim().toLowerCase()}}return H}function yt(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var Oo=/\[([^\]]+)\]\(([^)]+)\)/g;function v(e,t={}){if(C(e))return ko(e,t);if(Array.isArray(e))return e.map(r=>v(r,t));if(c(e)){let r={};for(let o in e)r[o]=v(e[o],t);return r}return e}function re(e){return C(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>re(t)):c(e)?Object.values(e).some(t=>re(t)):!1}function ko(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?E(t,o):t[o];return S(n)?String(n):r})}function xt(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=Oo.exec(e))!==null;){let[l,a,s]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,s,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var oe=e=>T(ze)(e),ne=e=>T(je)(e),b=T(We),Ie=T(z),h=T(Ke),y=T(Ze),Ce=T($e),Tt=T(H,Ne,et,tt),bt=T(He,Ne),ie=T(qe,Qe);function ht(e){return h(e)||b(e)}function Rt(e){return e.type===Ee}function At(e){return e.type!==Ee}function St(e){return y(e)||h(e)}function Et(e){return Ie(e)||Ce(e)}function ve(e){return e!=null&&e!==""}function T(...e){return t=>{let r=C(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function Nt(e,t={}){if(y(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function le(e){return h(e)||b(e)?L:e.advanced?.orientation??A}function Ft(e,t){let r=e.readonly??!1;return t||r}function It(e){if(h(e)||y(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(V in t))return t}}function Ct(e,t){let r=It(e);return r||Nt(e,t)}function wo(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return Fe(r,e.advanced?.entity)}function Do(e,t,r){return St(e)&&Array.isArray(r)?{...t,[j]:r}:t}function Vo(e,t,r){if(e.required&&!ve(r)&&y(e)&&e.advanced?.preselected!==!1&&j in t){let o=t[j];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function Lo(e,t){return y(e)&&Array.isArray(t)?pt(t,e.advanced?.options):t}function vt(e,t,r,o){let n=wo(e,o),i=Array.isArray(r)?Lo(e,r):r,l=Do(e,t,i),a=Vo(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function Pt(e,t){return b(e)?{checked:ve(t)}:{value:t??""}}var Mo=/^#\/definition\//;function ce(e=[],t){let r=ae(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>Ot(o)-Ot(n)):[]}function ae(e,t,r=new Map,o=new WeakSet){if(!_o(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>ae(i,t,r,o));if(V in e&&C(e[V])){let i=e[V].replace(Mo,""),l=E(t,i);return l!==null?ae(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=ae(l,t,r,o);return o.delete(e),r.set(e,n),n}function kt(e){return Object.entries(e??{})}function Ot(e){return e.order??Number.MAX_VALUE}function _o(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function wt(e,t){let r={};for(let[o,n]of kt(t))r[`${e}-${o}`]=n;return r}function Dt(e){return wt(lt,e)}function Vt(e){return wt(at,e)}var Lt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Mt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function _t(e,t=2){return Lt[e&&e in Lt?e:t]}function Bt(e){if(e&&e in Mt)return Mt[e]}var Bo=/^\d+$/;function Ut(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Gt(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function Pe(){return new Date().getFullYear()}function Oe(e,t){if(typeof e=="number")return e;let r=t??Pe(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return Bo.test(o)?parseInt(o,10):r}var u=require("zod");var Uo=[[ie,qo],[bt,Go],[ne,$o],[oe,Ko],[b,Xo],[h,Yo]];function Xt(e){return u.z.object(e)}function Yt(e){let t={},r=u.z.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function Ht(e){for(let[t,r]of Uo)if(t(e))return r(e);return Ho(e)}function Go(e){let t=u.z.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.z.email(e.validation?.email));return u.z.preprocess(o=>te(o)?"":o,r)}return t.pipe(u.z.email(e.validation?.email)).or(u.z.literal("")).nullable()}function Xo(e){let t=u.z.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.z.preprocess(r=>r===null?!1:r,t)):t.nullable()}function Yo(e){let t=u.z.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.z.preprocess(r=>te(r)?"":r,t)):t.or(u.z.literal("")).nullable()}function Ho(e){let t=u.z.coerce.string().trim();return t=qt(t,e),e.required?(t=$t(t,e),u.z.preprocess(r=>te(r)?"":r,t)):t.nullable()}function qo(e){let t=u.z.coerce.number().int();return t=qt(t,e),e.required?(t=$t(t,e),u.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function $o(e){if(e.required){let t=u.z.coerce.number({message:e.validation?.required}).int();return u.z.preprocess(Wo,t)}return u.z.coerce.number().int().nullable()}function Ko(e){let t=u.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Wo(e){return e===null||e===""?void 0:e}function qt(e,t){return e=Zo(e,t),e=zo(e,t),e}function $t(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var Zo=(e,t)=>Kt(e,t,J),zo=(e,t)=>Kt(e,t,Q);function Kt(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function Wt(e,t){if(!t||!Jo(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||jo(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function jo(e){return e==="https"?"443":"80"}function Jo(e){return/^(https?:)?\/\//.test(e)}function Zt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,ee);new URL(t,ee).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(ee,""):n}catch{return t||e}}function zt(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=Zt(t.url,r.url),n=Qo(t,r),i=en(t,r);return{...t,...r,url:o,body:n,headers:i}})}function Qo(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function en(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function jt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===D&&r.push(n),n.action===st&&o.push(n)}),t({sources:o,values:r})}function Jt(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if(dt(i)){let l=v(i.url,e),a=i.body?v(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function Qt(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?v(i,e):void 0)})})}var er=require("react/jsx-runtime");function q(e){return xt(e,(t,r,o)=>(0,er.jsx)("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}var P=require("react/jsx-runtime");function tr(e){return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:q(e.title)}),(0,P.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:q(e.description)})]})}var M=require("react/jsx-runtime");function rr(e){if(!e.section.title&&!e.section.description)return(0,M.jsx)(Y,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return(0,M.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[(0,M.jsx)(tr,{description:e.section.description,title:e.section.title}),(0,M.jsx)(Y,{compact:e.section.compact,children:e.children})]})}var nr=require("react");var ke=require("react/jsx-runtime");function or(){return(0,ke.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,ke.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var R=require("react/jsx-runtime");function ir(e){let t=ce(e.sections,e.definition);return(0,R.jsx)("div",{className:"h-full w-full",children:(0,R.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,R.jsxs)(Y,{children:[t.map((r,o)=>(0,R.jsxs)(nr.Fragment,{children:[(0,R.jsx)(rr,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,R.jsx)(or,{})]},o)),e.control&&(0,R.jsx)(Ge,{children:e.control})]})})})}var ar=require("react/jsx-runtime");function lr(e){return(0,ar.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var cr=require("react/jsx-runtime");function ue(e){let t=q(e.text);return t?(0,cr.jsx)(lr,{children:t}):null}var ur=require("tailwind-merge"),se=require("react/jsx-runtime");function sr(e){let t=h(e.field)||b(e.field);return(0,se.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,ur.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,se.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var $=require("react/jsx-runtime");function dr(e){return(0,$.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,$.jsx)(sr,{field:e.field,children:e.field.label}),e.orientation===L&&(0,$.jsx)(ue,{text:e.field.description})]})}var O=require("react/jsx-runtime");function mr(e){let t=le(e.field);return(0,O.jsxs)(O.Fragment,{children:[e.field.name&&e.field.label&&(0,O.jsx)(dr,{field:e.field,orientation:t}),e.children,t===A&&e.field.description&&(0,O.jsx)(ue,{text:e.field.description})]})}function fr(e,t){return e?t(e):null}var xr=require("jotai");var k=require("jotai"),we=require("jotai-family"),de=require("fast-equals");function me(e){return(0,we.atomFamily)(t=>(0,k.atom)(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!(0,de.deepEqual)(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function pr(e){return(0,k.atom)(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function fe(e){return(0,k.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function pe(e){return(0,k.atom)(null,(t,r,o)=>{let n=t(e);(0,de.deepEqual)(n,o)||r(e,o)})}function gr(e,t={}){let{merge:r,validateTarget:o}=t;return(0,we.atomFamily)(n=>(0,k.atom)(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,s)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(s!=null){let I=m[n];(!I||!(0,de.deepEqual)(I,s))&&(m[n]=s,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:I,...G}=d;l(e,G)}else l(e,{...d,[a]:m})}))}function yr(e){return(0,k.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let s={...i[a]},d=!1;for(let m of o)s[m]&&(delete s[m],d=!0,l=!0);d&&(Object.keys(s).length===0?delete i[a]:i[a]=s)}l&&r(e,i)})}var K=(0,xr.atom)({}),Tr=fe(K),br=pe(K),hr=me(K);var Rr=require("jotai");var N=(0,Rr.atom)({}),Ar=pr(N),Sr=fe(N),Bi=pe(N),Er=me(N);var Vr=require("react"),W=require("jotai");var Nr=require("jotai");var Fr=(0,Nr.atom)({}),Ir=gr(Fr,{merge:e=>{let t=zt(e);if(t)return t},validateTarget:e=>e.trim()!==""}),Cr=yr(Fr);var Or=require("jotai");var vr=Io(require("swr"),1);function Pr(e=null,t,r=!1){let{data:o,error:n}=(0,vr.default)(tn(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[ft(o,e.namespace)]}return[null]}function tn(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!re(e.url)){if(Wt(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function kr(e,t,r){let o=Ct(e,r),[n,i]=(0,Or.useAtom)(Ir(e.name)),l=n??o,[a]=Pr(l,t,e.disabled);return[a,i]}var w=require("react");function wr(e,t,r){let o=(0,w.useMemo)(()=>Ht(e),[e]),n=(0,w.useEffectEvent)(l=>{l&&t(l,o)}),i=(0,w.useEffectEvent)(l=>{l&&r(l)});return(0,w.useEffect)(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}var ge=require("react");function Dr(){let e=(0,ge.useRef)(null);(0,ge.useEffect)(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}var De=require("react/jsx-runtime");function Lr(e){let t=(0,W.useSetAtom)(hr(e.field.name)),[r,o]=(0,W.useAtom)(Er(e.field.name)),n=(0,W.useSetAtom)(N),[i]=wr(e.field,e.onMount,e.onUnmount),[l,a]=kr(e.field,e.config,r),{commonPropsWithOptions:s,defaultValue:d}=vt(e.field,e.commonProps,l,r),m=Pt(e.field,d),[I]=Dr();function G(p,f){if(Et(e.field)){I(()=>{f({value:p})},500);return}let x=mt(p,l,e.field.advanced?.entity);f(x)}function he(p){let f=p.target.value;o(f),e.config.validation.change&&X(f);let x=e.field.event?.change;x&&G(f,g=>{jt(x,({sources:To,values:bo})=>{(0,Vr.startTransition)(()=>{Jt(g,To,(Ae,Se)=>a(Ae,Se)),Qt(g,bo,(Ae,Se)=>{n(ho=>({...ho,[Ae]:Se}))})})})})}function Re(p){if(ht(e.field))return;let f=p.target.value;e.config.validation.blur&&X(f)}function X(p){let x=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(x)}return fr(e.config.inputs[e.field.type],p=>(0,De.jsx)(mr,{field:e.field,children:(0,De.jsx)(p,{...s,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:Re,onChange:he})}))}var Mr=require("tailwind-merge"),Ve=require("react/jsx-runtime");function _r(e){let t=_t(e.column?.advanced?.cols);return(0,Ve.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,Ve.jsx)("div",{className:(0,Mr.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Le=require("react/jsx-runtime");function Br(e){return!e.errors||e.errors.length===0?null:(0,Le.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,Le.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Ur=require("tailwind-merge"),Gr=require("react/jsx-runtime");function ye(e){let t=e.errors&&e.errors.length>0;return(0,Gr.jsx)("div",{"data-slot":"field",...t&&{[nt]:"true"},...e.disabled&&{[it]:"true"},"data-orientation":e.orientation,className:(0,Ur.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",Bt(e.cols),e.className),children:e.children})}var Yr=require("react/jsx-runtime");function Xr(e){return(0,Yr.jsx)(ye,{...e,orientation:A,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}var qr=require("react/jsx-runtime");function Hr(e){return(0,qr.jsx)(ye,{...e,orientation:L,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}var Me=require("react/jsx-runtime");function $r(e){return e.orientation===A?(0,Me.jsx)(Xr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):(0,Me.jsx)(Hr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var xe=Pe();function Kr(e){if(y(e))return rn(e)}function rn(e){if(oe(e))return Ut();if(ne(e)){let t=e.advanced?.length?.min??xe,r=e.advanced?.length?.max??xe+5;return Gt(Oe(t,xe),Oe(r,xe))}}function Wr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ie(e)?{...r,...on(e)}:y(e)?{...r,...nn(e)}:Ce(e)?{...r,...ln(e)}:r}function on(e){let t=gt(e.type),r={...e,type:t};return{...Zr(e),...an(r),...Tt(r)?zr(r):{},type:t}}function nn(e){let t=Kr(e);return t?{options:t}:{}}function ln(e){return{...Zr(e),...zr(e)}}function Zr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function an(e){return ie(e)?cn(e):{}}function zr(e){return jr(e,{min:ct,max:ut})}function cn(e){return jr(e,{min:J,max:Q})}function jr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function Jr(e,t){let r=Dt(e.advanced?.aria);return t&&t.length>0&&(r[ot]="true",r[rt]=`${e.name}-error`),r}function Qr(e){return Vt(e.advanced?.data)}function eo(e){if(!e.field.type)return null;let t=Wr(e.field,e.disabled),r=Qr(e.field),o=Jr(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}var _=require("react/jsx-runtime");function to(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=le(e.field),n=Ft(e.field,e.disabled);return(0,_.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,_.jsx)($r,{cols:t,disabled:n,errors:r,orientation:o,children:(0,_.jsx)(eo,{disabled:n,errors:r,field:e.field,children:e.children})}),(0,_.jsx)(Br,{errors:r,name:e.field.name})]})}var ro=require("jotai"),no=require("react/jsx-runtime");function oo(e){return r=>{let o=(0,ro.useAtomValue)(K);return(0,no.jsx)(e,{...r,errors:o})}}var io=oo(to);var lo=require("react"),B=require("react/jsx-runtime");function _e(e){let t=ce(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>(0,B.jsxs)(lo.Fragment,{children:[Rt(n)&&(0,B.jsx)(r,{column:n,children:(0,B.jsx)(_e,{...e,fields:n.fields})}),At(n)&&(0,B.jsx)(o,{disabled:e.disabled,field:n,children:e.children})]},i))}var co=require("react/jsx-runtime"),ao=e=>(0,co.jsx)(_e,{...e,components:{column:_r,field:io}});var Be=require("jotai");var U=require("react");function mo(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},s=(0,Be.useSetAtom)(br),d=(0,Be.useSetAtom)(Ar),m={data:a,error:null,success:!1},[I,G,he]=(0,U.useActionState)(async(Re,X)=>{let p=Xt(e());if(l===!1)return t?await t(X,p):Re;let f=yt(X),x=p.safeParse(f);if(!x.success){let g=Yt(x.error);return(0,U.startTransition)(()=>{s(g)}),so(f,{detail:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||(0,U.startTransition)(()=>{d()})):g.error&&(0,U.startTransition)(()=>{o?.(g.error)}),uo(f,i)}catch(g){return so(f,{title:"An unexpected error occurred submitting the form.",detail:un(g)})}return uo(x.data,i)},m);return[G,I,he]}function un(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function uo(e,t=!1){return{data:t?e:null,error:null,success:!0}}function so(e,t){return{data:e,error:t,success:!1}}var yo=require("jotai/utils");var F=require("react");var fo=require("react"),Te=require("jotai");function po(){let e=(0,Te.useSetAtom)(Tr),t=(0,Te.useSetAtom)(Cr),r=(0,Te.useSetAtom)(Sr);return(0,fo.useCallback)(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function go(){let e=po(),t=(0,F.useRef)({}),r=(0,F.useRef)(new Set),o=(0,F.useCallback)((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=(0,F.useCallback)(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),(0,F.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}var be=require("react/jsx-runtime");function xo(e){let[t,r,o]=go(),[n,i]=mo(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return(0,yo.useHydrateAtoms)([[N,e.value??{}]]),(0,be.jsx)(ir,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>(0,be.jsx)(ao,{disabled:l,fields:a,children:s=>(0,be.jsx)(Lr,{...s,config:e.config,onMount:r,onUnmount:o,value:i.data})})})}
1
+ "use strict";var So=Object.create;var j=Object.defineProperty;var Eo=Object.getOwnPropertyDescriptor;var No=Object.getOwnPropertyNames;var Fo=Object.getPrototypeOf,Io=Object.prototype.hasOwnProperty;var Co=(e,t)=>{for(var r in t)j(e,r,{get:t[r],enumerable:!0})},Ge=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of No(t))!Io.call(e,n)&&n!==r&&j(e,n,{get:()=>t[n],enumerable:!(o=Eo(t,n))||o.enumerable});return e};var vo=(e,t,r)=>(r=e!=null?So(Fo(e)):{},Ge(t||!e||!e.__esModule?j(r,"default",{value:e,enumerable:!0}):r,e)),Po=e=>Ge(j({},"__esModule",{value:!0}),e);var mn={};Co(mn,{Form:()=>To});module.exports=Po(mn);var y=require("react/jsx-runtime");function Xe(e){let t=Array.isArray(e.details)?e.details:e.details?Object.values(e.details).flat():null;return(0,y.jsxs)("div",{"data-slot":"alert",role:"alert",className:"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border bg-transparent px-4 py-3 text-sm text-red-500 has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 *:data-[slot=alert-description]:text-red-500/90 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",children:[(0,y.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,y.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,y.jsx)("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),(0,y.jsx)("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})]}),(0,y.jsx)("div",{"data-slot":"alert-title",className:"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",children:e.title}),(0,y.jsxs)("div",{"data-slot":"alert-description",className:"col-start-2 grid justify-items-start gap-1 text-sm",children:[e.description&&(0,y.jsx)("p",{children:e.description}),t&&(0,y.jsx)("ul",{className:"list-inside list-disc text-sm",children:t.map((r,o)=>(0,y.jsx)("li",{children:r},o))})]})]})}var He=require("react/jsx-runtime");function Ye(e){return(0,He.jsx)("div",{"data-slot":"field-control",className:"w-full",children:e.children})}var qe=require("react/jsx-runtime");function q(e){return(0,qe.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 J="input",$e="input/email",Ke="input/number";var We="textarea",ze="radio",Ze="checkbox",je="select",Je="select/month",Qe="select/year";var Ne="column";var et="label",L="value",Q="options",Fe="email",tt="number",rt="password",ot="tel",$="text",nt="aria-errormessage",it="aria-invalid",lt="data-invalid",at="data-readonly",st="aria",ct="data",ee="min",te="max",ut="minLength",dt="maxLength",M="$ref",mt="source";var re="http://luna.internal",E="vertical",_="horizontal";function s(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function oe(e){return e==null||e===""}function N(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function P(e){return typeof e=="string"}function ft(e){return s(e)&&"url"in e}var ko=/[^/]+$/;function pt(e,t=[],r=L){if(Array.isArray(t))return t.find(o=>{let n=Ie(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function Ie(e,t=L){if(e!=null){if(N(e))return e;if(s(e)){let r=Oo(e,t);if(N(r))return r}}}function Oo(e,t){let r=F(e,t);if(N(r))return r}function gt(e,t){if(Array.isArray(e))return e;let r=F(e,t);return Array.isArray(r)?r:null}function F(e,t){if(!t||!s(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(s(o)&&n in o)o=o[n];else return null;return o}function yt(e,t={label:et,value:L}){return e.map(r=>{if(s(r)){let o=F(r,t.label),n=F(r,t.value);if(N(o)&&N(n))return{label:`${o}`,value:`${n}`}}return r})}function xt(e=$){if(e){let t=e.match(ko);if(t){let[r]=t;if(r!==J)return r.trim().toLowerCase()}}return $}function bt(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var wo=/\[([^\]]+)\]\(([^)]+)\)/g;function k(e,t={}){if(P(e))return Do(e,t);if(Array.isArray(e))return e.map(r=>k(r,t));if(s(e)){let r={};for(let o in e)r[o]=k(e[o],t);return r}return e}function ne(e){return P(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>ne(t)):s(e)?Object.values(e).some(t=>ne(t)):!1}function Do(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?F(t,o):t[o];return N(n)?String(n):r})}function Tt(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=wo.exec(e))!==null;){let[l,a,u]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,u,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var ie=e=>T(Je)(e),le=e=>T(Qe)(e),h=T(Ze),Ce=T(J),R=T(ze),x=T(je),ve=T(We),ht=T($,Fe,rt,ot),Rt=T($e,Fe),ae=T(Ke,tt);function At(e){return R(e)||h(e)}function St(e){return e.type===Ne}function Et(e){return e.type!==Ne}function Nt(e){return x(e)||R(e)}function Ft(e){return Ce(e)||ve(e)}function Pe(e){return e!=null&&e!==""}function T(...e){return t=>{let r=P(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function It(e,t={}){if(x(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&s(r))return[r]}}function se(e){return R(e)||h(e)?_:e.advanced?.orientation??E}function Ct(e,t){let r=e.readonly??!1;return t||r}function vt(e){if(R(e)||x(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||s(t)&&!(M in t))return t}}function Pt(e,t){let r=vt(e);return r||It(e,t)}function Vo(e,t){let r=s(t)&&e.name in t?t[e.name]:t;return Ie(r,e.advanced?.entity)}function Lo(e,t,r){return Nt(e)&&Array.isArray(r)?{...t,[Q]:r}:t}function Mo(e,t,r){if(e.required&&!Pe(r)&&x(e)&&e.advanced?.preselected!==!1&&Q in t){let o=t[Q];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function _o(e,t){return x(e)&&Array.isArray(t)?yt(t,e.advanced?.options):t}function kt(e,t,r,o){let n=Vo(e,o),i=Array.isArray(r)?_o(e,r):r,l=Lo(e,t,i),a=Mo(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function Ot(e,t){return h(e)?{checked:Pe(t)}:{value:t??""}}var Bo=/^#\/definition\//;function ue(e=[],t){let r=ce(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>wt(o)-wt(n)):[]}function ce(e,t,r=new Map,o=new WeakSet){if(!Uo(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>ce(i,t,r,o));if(M in e&&P(e[M])){let i=e[M].replace(Bo,""),l=F(t,i);return l!==null?ce(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=ce(l,t,r,o);return o.delete(e),r.set(e,n),n}function Dt(e){return Object.entries(e??{})}function wt(e){return e.order??Number.MAX_VALUE}function Uo(e){return e!==void 0&&s(e)&&Object.keys(e).length>0}function Vt(e,t){let r={};for(let[o,n]of Dt(t))r[`${e}-${o}`]=n;return r}function Lt(e){return Vt(st,e)}function Mt(e){return Vt(ct,e)}var _t={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Bt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Ut(e,t=2){return _t[e&&e in _t?e:t]}function Gt(e){if(e&&e in Bt)return Bt[e]}var Go=/^\d+$/;function Xt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Yt(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function ke(){return new Date().getFullYear()}function Oe(e,t){if(typeof e=="number")return e;let r=t??ke(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return Go.test(o)?parseInt(o,10):r}var c=require("zod");var Xo=[[ae,Ko],[Rt,Yo],[le,Wo],[ie,zo],[h,Ho],[R,qo]];function Ht(e){return c.z.object(e)}function qt(e){let t={},r=c.z.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function $t(e){for(let[t,r]of Xo)if(t(e))return r(e);return $o(e)}function Yo(e){let t=c.z.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(c.z.email(e.validation?.email));return c.z.preprocess(o=>oe(o)?"":o,r)}return t.pipe(c.z.email(e.validation?.email)).or(c.z.literal("")).nullable()}function Ho(e){let t=c.z.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),c.z.preprocess(r=>r===null?!1:r,t)):t.nullable()}function qo(e){let t=c.z.coerce.string();return e.required?(t=t.min(1,e.validation?.required),c.z.preprocess(r=>oe(r)?"":r,t)):t.or(c.z.literal("")).nullable()}function $o(e){let t=c.z.coerce.string().trim();return t=Kt(t,e),e.required?(t=Wt(t,e),c.z.preprocess(r=>oe(r)?"":r,t)):t.nullable()}function Ko(e){let t=c.z.coerce.number().int();return t=Kt(t,e),e.required?(t=Wt(t,e),c.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function Wo(e){if(e.required){let t=c.z.coerce.number({message:e.validation?.required}).int();return c.z.preprocess(Zo,t)}return c.z.coerce.number().int().nullable()}function zo(e){let t=c.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Zo(e){return e===null||e===""?void 0:e}function Kt(e,t){return e=jo(e,t),e=Jo(e,t),e}function Wt(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var jo=(e,t)=>zt(e,t,ee),Jo=(e,t)=>zt(e,t,te);function zt(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function Zt(e,t){if(!t||!en(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||Qo(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function Qo(e){return e==="https"?"443":"80"}function en(e){return/^(https?:)?\/\//.test(e)}function jt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,re);new URL(t,re).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(re,""):n}catch{return t||e}}function Jt(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=jt(t.url,r.url),n=tn(t,r),i=rn(t,r);return{...t,...r,url:o,body:n,headers:i}})}function tn(e,t){return s(t.body)&&s(e?.body)?{...e.body,...t.body}:t.body??e?.body}function rn(e,t){return s(t.headers)&&s(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function Qt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===L&&r.push(n),n.action===mt&&o.push(n)}),t({sources:o,values:r})}function er(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if(ft(i)){let l=k(i.url,e),a=i.body?k(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function tr(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?k(i,e):void 0)})})}var rr=require("react/jsx-runtime");function K(e){return Tt(e,(t,r,o)=>(0,rr.jsx)("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}var O=require("react/jsx-runtime");function or(e){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:K(e.title)}),(0,O.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:K(e.description)})]})}var B=require("react/jsx-runtime");function nr(e){if(!e.section.title&&!e.section.description)return(0,B.jsx)(q,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return(0,B.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[(0,B.jsx)(or,{description:e.section.description,title:e.section.title}),(0,B.jsx)(q,{compact:e.section.compact,children:e.children})]})}var lr=require("react");var we=require("react/jsx-runtime");function ir(){return(0,we.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,we.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var A=require("react/jsx-runtime");function ar(e){let t=ue(e.sections,e.definition);return(0,A.jsx)("div",{className:"h-full w-full",children:(0,A.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,A.jsxs)(q,{children:[t.map((r,o)=>(0,A.jsxs)(lr.Fragment,{children:[(0,A.jsx)(nr,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,A.jsx)(ir,{})]},o)),e.control&&(0,A.jsx)(Ye,{children:e.control})]})})})}var cr=require("react/jsx-runtime");function sr(e){return(0,cr.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var ur=require("react/jsx-runtime");function de(e){let t=K(e.text);return t?(0,ur.jsx)(sr,{children:t}):null}var dr=require("tailwind-merge"),me=require("react/jsx-runtime");function mr(e){let t=R(e.field)||h(e.field);return(0,me.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,dr.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,me.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var W=require("react/jsx-runtime");function fr(e){return(0,W.jsxs)("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[(0,W.jsx)(mr,{field:e.field,children:e.field.label}),e.orientation===_&&(0,W.jsx)(de,{text:e.field.description})]})}var w=require("react/jsx-runtime");function pr(e){let t=se(e.field);return(0,w.jsxs)(w.Fragment,{children:[e.field.name&&e.field.label&&(0,w.jsx)(fr,{field:e.field,orientation:t}),e.children,t===E&&e.field.description&&(0,w.jsx)(de,{text:e.field.description})]})}function gr(e,t){return e?t(e):null}var Tr=require("jotai");var D=require("jotai"),De=require("jotai-family"),fe=require("fast-equals");function pe(e){return(0,De.atomFamily)(t=>(0,D.atom)(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!(0,fe.deepEqual)(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function yr(e){return(0,D.atom)(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function ge(e){return(0,D.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function ye(e){return(0,D.atom)(null,(t,r,o)=>{let n=t(e);(0,fe.deepEqual)(n,o)||r(e,o)})}function xr(e,t={}){let{merge:r,validateTarget:o}=t;return(0,De.atomFamily)(n=>(0,D.atom)(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,u)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(u!=null){let v=m[n];(!v||!(0,fe.deepEqual)(v,u))&&(m[n]=u,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:v,...Y}=d;l(e,Y)}else l(e,{...d,[a]:m})}))}function br(e){return(0,D.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let u={...i[a]},d=!1;for(let m of o)u[m]&&(delete u[m],d=!0,l=!0);d&&(Object.keys(u).length===0?delete i[a]:i[a]=u)}l&&r(e,i)})}var z=(0,Tr.atom)({}),hr=ge(z),Rr=ye(z),Ar=pe(z);var Sr=require("jotai");var I=(0,Sr.atom)({}),Er=yr(I),Nr=ge(I),Xi=ye(I),Fr=pe(I);var Mr=require("react"),Z=require("jotai");var Ir=require("jotai");var Cr=(0,Ir.atom)({}),vr=xr(Cr,{merge:e=>{let t=Jt(e);if(t)return t},validateTarget:e=>e.trim()!==""}),Pr=br(Cr);var wr=require("jotai");var kr=vo(require("swr"),1);function Or(e=null,t,r=!1){let{data:o,error:n}=(0,kr.default)(on(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[gt(o,e.namespace)]}return[null]}function on(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!ne(e.url)){if(Zt(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function Dr(e,t,r){let o=Pt(e,r),[n,i]=(0,wr.useAtom)(vr(e.name)),l=n??o,[a]=Or(l,t,e.disabled);return[a,i]}var V=require("react");function Vr(e,t,r){let o=(0,V.useMemo)(()=>$t(e),[e]),n=(0,V.useEffectEvent)(l=>{l&&t(l,o)}),i=(0,V.useEffectEvent)(l=>{l&&r(l)});return(0,V.useEffect)(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}var xe=require("react");function Lr(){let e=(0,xe.useRef)(null);(0,xe.useEffect)(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}var Ve=require("react/jsx-runtime");function _r(e){let t=(0,Z.useSetAtom)(Ar(e.field.name)),[r,o]=(0,Z.useAtom)(Fr(e.field.name)),n=(0,Z.useSetAtom)(I),[i]=Vr(e.field,e.onMount,e.onUnmount),[l,a]=Dr(e.field,e.config,r),{commonPropsWithOptions:u,defaultValue:d}=kt(e.field,e.commonProps,l,r),m=Ot(e.field,d),[v]=Lr();function Y(p,f){if(Ft(e.field)){v(()=>{f({value:p})},500);return}let b=pt(p,l,e.field.advanced?.entity);f(b)}function Re(p){let f=p.target.value;o(f),e.config.validation.change&&H(f);let b=e.field.event?.change;b&&Y(f,g=>{Qt(b,({sources:ho,values:Ro})=>{(0,Mr.startTransition)(()=>{er(g,ho,(Se,Ee)=>a(Se,Ee)),tr(g,Ro,(Se,Ee)=>{n(Ao=>({...Ao,[Se]:Ee}))})})})})}function Ae(p){if(At(e.field))return;let f=p.target.value;e.config.validation.blur&&H(f)}function H(p){let b=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(b)}return gr(e.config.inputs[e.field.type],p=>(0,Ve.jsx)(pr,{field:e.field,children:(0,Ve.jsx)(p,{...u,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:Ae,onChange:Re})}))}var Br=require("tailwind-merge"),Le=require("react/jsx-runtime");function Ur(e){let t=Ut(e.column?.advanced?.cols);return(0,Le.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,Le.jsx)("div",{className:(0,Br.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Me=require("react/jsx-runtime");function Gr(e){return!e.errors||e.errors.length===0?null:(0,Me.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,Me.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Xr=require("tailwind-merge"),Yr=require("react/jsx-runtime");function be(e){let t=e.errors&&e.errors.length>0;return(0,Yr.jsx)("div",{"data-slot":"field",...t&&{[lt]:"true"},...e.disabled&&{[at]:"true"},"data-orientation":e.orientation,className:(0,Xr.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",Gt(e.cols),e.className),children:e.children})}var qr=require("react/jsx-runtime");function Hr(e){return(0,qr.jsx)(be,{...e,orientation:E,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}var Kr=require("react/jsx-runtime");function $r(e){return(0,Kr.jsx)(be,{...e,orientation:_,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}var _e=require("react/jsx-runtime");function Wr(e){return e.orientation===E?(0,_e.jsx)(Hr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):(0,_e.jsx)($r,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var Te=ke();function zr(e){if(x(e))return nn(e)}function nn(e){if(ie(e))return Xt();if(le(e)){let t=e.advanced?.length?.min??Te,r=e.advanced?.length?.max??Te+5;return Yt(Oe(t,Te),Oe(r,Te))}}function Zr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ce(e)?{...r,...ln(e)}:x(e)?{...r,...an(e)}:ve(e)?{...r,...sn(e)}:r}function ln(e){let t=xt(e.type),r={...e,type:t};return{...jr(e),...cn(r),...ht(r)?Jr(r):{},type:t}}function an(e){let t=zr(e);return t?{options:t}:{}}function sn(e){return{...jr(e),...Jr(e)}}function jr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function cn(e){return ae(e)?un(e):{}}function Jr(e){return Qr(e,{min:ut,max:dt})}function un(e){return Qr(e,{min:ee,max:te})}function Qr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function eo(e,t){let r=Lt(e.advanced?.aria);return t&&t.length>0&&(r[it]="true",r[nt]=`${e.name}-error`),r}function to(e){return Mt(e.advanced?.data)}function ro(e){if(!e.field.type)return null;let t=Zr(e.field,e.disabled),r=to(e.field),o=eo(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}var U=require("react/jsx-runtime");function oo(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=se(e.field),n=Ct(e.field,e.disabled);return(0,U.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,U.jsx)(Wr,{cols:t,disabled:n,errors:r,orientation:o,children:(0,U.jsx)(ro,{disabled:n,errors:r,field:e.field,children:e.children})}),(0,U.jsx)(Gr,{errors:r,name:e.field.name})]})}var no=require("jotai"),lo=require("react/jsx-runtime");function io(e){return r=>{let o=(0,no.useAtomValue)(z);return(0,lo.jsx)(e,{...r,errors:o})}}var ao=io(oo);var so=require("react"),G=require("react/jsx-runtime");function Be(e){let t=ue(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>(0,G.jsxs)(so.Fragment,{children:[St(n)&&(0,G.jsx)(r,{column:n,children:(0,G.jsx)(Be,{...e,fields:n.fields})}),Et(n)&&(0,G.jsx)(o,{disabled:e.disabled,field:n,children:e.children})]},i))}var uo=require("react/jsx-runtime"),co=e=>(0,uo.jsx)(Be,{...e,components:{column:Ur,field:ao}});var Ue=require("jotai");var X=require("react");function po(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},u=(0,Ue.useSetAtom)(Rr),d=(0,Ue.useSetAtom)(Er),m={data:a,error:null,success:!1},[v,Y,Re]=(0,X.useActionState)(async(Ae,H)=>{let p=Ht(e());if(l===!1)return t?await t(H,p):Ae;let f=bt(H),b=p.safeParse(f);if(!b.success){let g=qt(b.error);return(0,X.startTransition)(()=>{u(g)}),fo(f,{details:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||(0,X.startTransition)(()=>{d()})):g.error&&(0,X.startTransition)(()=>{o?.(g.error)}),mo(f,i)}catch(g){return fo(f,{title:"An unexpected error occurred submitting the form.",details:dn(g)})}return mo(b.data,i)},m);return[Y,v,Re]}function dn(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function mo(e,t=!1){return{data:t?e:null,error:null,success:!0}}function fo(e,t){return{data:e,error:t,success:!1}}var bo=require("jotai/utils");var C=require("react");var go=require("react"),he=require("jotai");function yo(){let e=(0,he.useSetAtom)(hr),t=(0,he.useSetAtom)(Pr),r=(0,he.useSetAtom)(Nr);return(0,go.useCallback)(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function xo(){let e=yo(),t=(0,C.useRef)({}),r=(0,C.useRef)(new Set),o=(0,C.useCallback)((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=(0,C.useCallback)(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),(0,C.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}var S=require("react/jsx-runtime");function To(e){let[t,r,o]=xo(),[n,i]=po(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return(0,bo.useHydrateAtoms)([[I,e.value??{}]]),(0,S.jsx)(ar,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>(0,S.jsxs)(S.Fragment,{children:[!i.success&&i.error&&(0,S.jsx)(Xe,{title:i.error.title,description:i.error.description,details:i.error.details}),(0,S.jsx)(co,{disabled:l,fields:a,children:u=>(0,S.jsx)(_r,{...u,config:e.config,onMount:r,onUnmount:o,value:i.data})})]})})}
@@ -1 +1 @@
1
- import{jsx as Kr}from"react/jsx-runtime";function Ee(e){return Kr("div",{"data-slot":"field-control",className:"w-full",children:e.children})}import{jsx as Wr}from"react/jsx-runtime";function D(e){return Wr("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 B="input",Ne="input/email",Fe="input/number";var Ie="textarea",Ce="radio",ve="checkbox",Pe="select",Oe="select/month",ke="select/year";var ce="column";var we="label",C="value",U="options",ue="email",De="number",Ve="password",Le="tel",V="text",Me="aria-errormessage",_e="aria-invalid",Be="data-invalid",Ue="data-readonly",Ge="aria",Xe="data",G="min",X="max",Ye="minLength",He="maxLength",v="$ref",qe="source";var Y="http://luna.internal",R="vertical",P="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function H(e){return e==null||e===""}function A(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function F(e){return typeof e=="string"}function $e(e){return c(e)&&"url"in e}var Zr=/[^/]+$/;function Ke(e,t=[],r=C){if(Array.isArray(t))return t.find(o=>{let n=se(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function se(e,t=C){if(e!=null){if(A(e))return e;if(c(e)){let r=zr(e,t);if(A(r))return r}}}function zr(e,t){let r=S(e,t);if(A(r))return r}function We(e,t){if(Array.isArray(e))return e;let r=S(e,t);return Array.isArray(r)?r:null}function S(e,t){if(!t||!c(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(c(o)&&n in o)o=o[n];else return null;return o}function Ze(e,t={label:we,value:C}){return e.map(r=>{if(c(r)){let o=S(r,t.label),n=S(r,t.value);if(A(o)&&A(n))return{label:`${o}`,value:`${n}`}}return r})}function ze(e=V){if(e){let t=e.match(Zr);if(t){let[r]=t;if(r!==B)return r.trim().toLowerCase()}}return V}function je(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var jr=/\[([^\]]+)\]\(([^)]+)\)/g;function I(e,t={}){if(F(e))return Jr(e,t);if(Array.isArray(e))return e.map(r=>I(r,t));if(c(e)){let r={};for(let o in e)r[o]=I(e[o],t);return r}return e}function q(e){return F(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>q(t)):c(e)?Object.values(e).some(t=>q(t)):!1}function Jr(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?S(t,o):t[o];return A(n)?String(n):r})}function Je(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=jr.exec(e))!==null;){let[l,a,s]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,s,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var $=e=>T(Oe)(e),K=e=>T(ke)(e),b=T(ve),de=T(B),h=T(Ce),y=T(Pe),me=T(Ie),Qe=T(V,ue,Ve,Le),et=T(Ne,ue),W=T(Fe,De);function tt(e){return h(e)||b(e)}function rt(e){return e.type===ce}function ot(e){return e.type!==ce}function nt(e){return y(e)||h(e)}function it(e){return de(e)||me(e)}function fe(e){return e!=null&&e!==""}function T(...e){return t=>{let r=F(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function lt(e,t={}){if(y(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function Z(e){return h(e)||b(e)?P:e.advanced?.orientation??R}function at(e,t){let r=e.readonly??!1;return t||r}function ct(e){if(h(e)||y(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(v in t))return t}}function ut(e,t){let r=ct(e);return r||lt(e,t)}function Qr(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return se(r,e.advanced?.entity)}function eo(e,t,r){return nt(e)&&Array.isArray(r)?{...t,[U]:r}:t}function to(e,t,r){if(e.required&&!fe(r)&&y(e)&&e.advanced?.preselected!==!1&&U in t){let o=t[U];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function ro(e,t){return y(e)&&Array.isArray(t)?Ze(t,e.advanced?.options):t}function st(e,t,r,o){let n=Qr(e,o),i=Array.isArray(r)?ro(e,r):r,l=eo(e,t,i),a=to(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function dt(e,t){return b(e)?{checked:fe(t)}:{value:t??""}}var oo=/^#\/definition\//;function j(e=[],t){let r=z(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>mt(o)-mt(n)):[]}function z(e,t,r=new Map,o=new WeakSet){if(!no(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>z(i,t,r,o));if(v in e&&F(e[v])){let i=e[v].replace(oo,""),l=S(t,i);return l!==null?z(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=z(l,t,r,o);return o.delete(e),r.set(e,n),n}function ft(e){return Object.entries(e??{})}function mt(e){return e.order??Number.MAX_VALUE}function no(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function pt(e,t){let r={};for(let[o,n]of ft(t))r[`${e}-${o}`]=n;return r}function gt(e){return pt(Ge,e)}function yt(e){return pt(Xe,e)}var xt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Tt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function bt(e,t=2){return xt[e&&e in xt?e:t]}function ht(e){if(e&&e in Tt)return Tt[e]}var io=/^\d+$/;function Rt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function At(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function pe(){return new Date().getFullYear()}function ge(e,t){if(typeof e=="number")return e;let r=t??pe(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return io.test(o)?parseInt(o,10):r}import{z as u}from"zod";var lo=[[W,mo],[et,ao],[K,fo],[$,po],[b,co],[h,uo]];function St(e){return u.object(e)}function Et(e){let t={},r=u.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function Nt(e){for(let[t,r]of lo)if(t(e))return r(e);return so(e)}function ao(e){let t=u.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.email(e.validation?.email));return u.preprocess(o=>H(o)?"":o,r)}return t.pipe(u.email(e.validation?.email)).or(u.literal("")).nullable()}function co(e){let t=u.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.preprocess(r=>r===null?!1:r,t)):t.nullable()}function uo(e){let t=u.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.preprocess(r=>H(r)?"":r,t)):t.or(u.literal("")).nullable()}function so(e){let t=u.coerce.string().trim();return t=Ft(t,e),e.required?(t=It(t,e),u.preprocess(r=>H(r)?"":r,t)):t.nullable()}function mo(e){let t=u.coerce.number().int();return t=Ft(t,e),e.required?(t=It(t,e),u.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function fo(e){if(e.required){let t=u.coerce.number({message:e.validation?.required}).int();return u.preprocess(go,t)}return u.coerce.number().int().nullable()}function po(e){let t=u.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function go(e){return e===null||e===""?void 0:e}function Ft(e,t){return e=yo(e,t),e=xo(e,t),e}function It(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var yo=(e,t)=>Ct(e,t,G),xo=(e,t)=>Ct(e,t,X);function Ct(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function vt(e,t){if(!t||!bo(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||To(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function To(e){return e==="https"?"443":"80"}function bo(e){return/^(https?:)?\/\//.test(e)}function Pt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,Y);new URL(t,Y).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(Y,""):n}catch{return t||e}}function Ot(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=Pt(t.url,r.url),n=ho(t,r),i=Ro(t,r);return{...t,...r,url:o,body:n,headers:i}})}function ho(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Ro(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function kt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===C&&r.push(n),n.action===qe&&o.push(n)}),t({sources:o,values:r})}function wt(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if($e(i)){let l=I(i.url,e),a=i.body?I(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function Dt(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?I(i,e):void 0)})})}import{jsx as Ao}from"react/jsx-runtime";function L(e){return Je(e,(t,r,o)=>Ao("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}import{Fragment as So,jsx as Vt,jsxs as Eo}from"react/jsx-runtime";function Lt(e){return Eo(So,{children:[Vt("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:L(e.title)}),Vt("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:L(e.description)})]})}import{jsx as ye,jsxs as No}from"react/jsx-runtime";function Mt(e){if(!e.section.title&&!e.section.description)return ye(D,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return No("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[ye(Lt,{description:e.section.description,title:e.section.title}),ye(D,{compact:e.section.compact,children:e.children})]})}import{Fragment as Fo}from"react";import{jsx as _t}from"react/jsx-runtime";function Bt(){return _t("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:_t("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as M,jsxs as Ut}from"react/jsx-runtime";function Gt(e){let t=j(e.sections,e.definition);return M("div",{className:"h-full w-full",children:M("form",{noValidate:e.noValidate,action:e.action,children:Ut(D,{children:[t.map((r,o)=>Ut(Fo,{children:[M(Mt,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&M(Bt,{})]},o)),e.control&&M(Ee,{children:e.control})]})})})}import{jsx as Io}from"react/jsx-runtime";function Xt(e){return Io("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as Co}from"react/jsx-runtime";function J(e){let t=L(e.text);return t?Co(Xt,{children:t}):null}import{twMerge as vo}from"tailwind-merge";import{jsx as Po,jsxs as Oo}from"react/jsx-runtime";function Yt(e){let t=h(e.field)||b(e.field);return Oo("label",{"data-slot":"field-label","data-normal":t,className:vo("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&&Po("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as Ht,jsxs as ko}from"react/jsx-runtime";function qt(e){return ko("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[Ht(Yt,{field:e.field,children:e.field.label}),e.orientation===P&&Ht(J,{text:e.field.description})]})}import{Fragment as wo,jsx as $t,jsxs as Do}from"react/jsx-runtime";function Kt(e){let t=Z(e.field);return Do(wo,{children:[e.field.name&&e.field.label&&$t(qt,{field:e.field,orientation:t}),e.children,t===R&&e.field.description&&$t(J,{text:e.field.description})]})}function Wt(e,t){return e?t(e):null}import{atom as Vo}from"jotai";import{atom as O}from"jotai";import{atomFamily as Zt}from"jotai-family";import{deepEqual as xe}from"fast-equals";function Q(e){return Zt(t=>O(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!xe(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function zt(e){return O(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function ee(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function te(e){return O(null,(t,r,o)=>{let n=t(e);xe(n,o)||r(e,o)})}function jt(e,t={}){let{merge:r,validateTarget:o}=t;return Zt(n=>O(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,s)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(s!=null){let N=m[n];(!N||!xe(N,s))&&(m[n]=s,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:N,...k}=d;l(e,k)}else l(e,{...d,[a]:m})}))}function Jt(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let s={...i[a]},d=!1;for(let m of o)s[m]&&(delete s[m],d=!0,l=!0);d&&(Object.keys(s).length===0?delete i[a]:i[a]=s)}l&&r(e,i)})}var _=Vo({}),Qt=ee(_),er=te(_),tr=Q(_);import{atom as Lo}from"jotai";var E=Lo({}),rr=zt(E),or=ee(E),sl=te(E),nr=Q(E);import{startTransition as qo}from"react";import{useAtom as $o,useSetAtom as fr}from"jotai";import{atom as Mo}from"jotai";var ir=Mo({}),lr=jt(ir,{merge:e=>{let t=Ot(e);if(t)return t},validateTarget:e=>e.trim()!==""}),ar=Jt(ir);import{useAtom as Uo}from"jotai";import _o from"swr";function cr(e=null,t,r=!1){let{data:o,error:n}=_o(Bo(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[We(o,e.namespace)]}return[null]}function Bo(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!q(e.url)){if(vt(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function ur(e,t,r){let o=ut(e,r),[n,i]=Uo(lr(e.name)),l=n??o,[a]=cr(l,t,e.disabled);return[a,i]}import{useEffect as Go,useEffectEvent as sr,useMemo as Xo}from"react";function dr(e,t,r){let o=Xo(()=>Nt(e),[e]),n=sr(l=>{l&&t(l,o)}),i=sr(l=>{l&&r(l)});return Go(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}import{useEffect as Yo,useRef as Ho}from"react";function mr(){let e=Ho(null);Yo(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}import{jsx as pr}from"react/jsx-runtime";function gr(e){let t=fr(tr(e.field.name)),[r,o]=$o(nr(e.field.name)),n=fr(E),[i]=dr(e.field,e.onMount,e.onUnmount),[l,a]=ur(e.field,e.config,r),{commonPropsWithOptions:s,defaultValue:d}=st(e.field,e.commonProps,l,r),m=dt(e.field,d),[N]=mr();function k(p,f){if(it(e.field)){N(()=>{f({value:p})},500);return}let x=Ke(p,l,e.field.advanced?.entity);f(x)}function ne(p){let f=p.target.value;o(f),e.config.validation.change&&w(f);let x=e.field.event?.change;x&&k(f,g=>{kt(x,({sources:Hr,values:qr})=>{qo(()=>{wt(g,Hr,(le,ae)=>a(le,ae)),Dt(g,qr,(le,ae)=>{n($r=>({...$r,[le]:ae}))})})})})}function ie(p){if(tt(e.field))return;let f=p.target.value;e.config.validation.blur&&w(f)}function w(p){let x=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(x)}return Wt(e.config.inputs[e.field.type],p=>pr(Kt,{field:e.field,children:pr(p,{...s,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:ie,onChange:ne})}))}import{twMerge as Ko}from"tailwind-merge";import{jsx as yr}from"react/jsx-runtime";function xr(e){let t=bt(e.column?.advanced?.cols);return yr("div",{className:"flex w-full flex-col gap-4",children:yr("div",{className:Ko("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{jsx as Tr}from"react/jsx-runtime";function br(e){return!e.errors||e.errors.length===0?null:Tr("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>Tr("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{twMerge as Wo}from"tailwind-merge";import{jsx as Zo}from"react/jsx-runtime";function re(e){let t=e.errors&&e.errors.length>0;return Zo("div",{"data-slot":"field",...t&&{[Be]:"true"},...e.disabled&&{[Ue]:"true"},"data-orientation":e.orientation,className:Wo("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",ht(e.cols),e.className),children:e.children})}import{jsx as zo}from"react/jsx-runtime";function hr(e){return zo(re,{...e,orientation:R,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}import{jsx as jo}from"react/jsx-runtime";function Rr(e){return jo(re,{...e,orientation:P,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}import{jsx as Ar}from"react/jsx-runtime";function Sr(e){return e.orientation===R?Ar(hr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):Ar(Rr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var oe=pe();function Er(e){if(y(e))return Jo(e)}function Jo(e){if($(e))return Rt();if(K(e)){let t=e.advanced?.length?.min??oe,r=e.advanced?.length?.max??oe+5;return At(ge(t,oe),ge(r,oe))}}function Nr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return de(e)?{...r,...Qo(e)}:y(e)?{...r,...en(e)}:me(e)?{...r,...tn(e)}:r}function Qo(e){let t=ze(e.type),r={...e,type:t};return{...Fr(e),...rn(r),...Qe(r)?Ir(r):{},type:t}}function en(e){let t=Er(e);return t?{options:t}:{}}function tn(e){return{...Fr(e),...Ir(e)}}function Fr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function rn(e){return W(e)?on(e):{}}function Ir(e){return Cr(e,{min:Ye,max:He})}function on(e){return Cr(e,{min:G,max:X})}function Cr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function vr(e,t){let r=gt(e.advanced?.aria);return t&&t.length>0&&(r[_e]="true",r[Me]=`${e.name}-error`),r}function Pr(e){return yt(e.advanced?.data)}function Or(e){if(!e.field.type)return null;let t=Nr(e.field,e.disabled),r=Pr(e.field),o=vr(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}import{jsx as Te,jsxs as nn}from"react/jsx-runtime";function kr(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=Z(e.field),n=at(e.field,e.disabled);return nn("div",{className:"flex flex-col gap-3",children:[Te(Sr,{cols:t,disabled:n,errors:r,orientation:o,children:Te(Or,{disabled:n,errors:r,field:e.field,children:e.children})}),Te(br,{errors:r,name:e.field.name})]})}import{useAtomValue as ln}from"jotai";import{jsx as an}from"react/jsx-runtime";function wr(e){return r=>{let o=ln(_);return an(e,{...r,errors:o})}}var Dr=wr(kr);import{Fragment as cn}from"react";import{jsx as be,jsxs as un}from"react/jsx-runtime";function he(e){let t=j(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>un(cn,{children:[rt(n)&&be(r,{column:n,children:be(he,{...e,fields:n.fields})}),ot(n)&&be(o,{disabled:e.disabled,field:n,children:e.children})]},i))}import{jsx as sn}from"react/jsx-runtime";var Vr=e=>sn(he,{...e,components:{column:xr,field:Dr}});import{useSetAtom as Lr}from"jotai";import{startTransition as Re,useActionState as dn}from"react";function Br(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},s=Lr(er),d=Lr(rr),m={data:a,error:null,success:!1},[N,k,ne]=dn(async(ie,w)=>{let p=St(e());if(l===!1)return t?await t(w,p):ie;let f=je(w),x=p.safeParse(f);if(!x.success){let g=Et(x.error);return Re(()=>{s(g)}),_r(f,{detail:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||Re(()=>{d()})):g.error&&Re(()=>{o?.(g.error)}),Mr(f,i)}catch(g){return _r(f,{title:"An unexpected error occurred submitting the form.",detail:mn(g)})}return Mr(x.data,i)},m);return[k,N,ne]}function mn(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Mr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function _r(e,t){return{data:e,error:t,success:!1}}import{useHydrateAtoms as gn}from"jotai/utils";import{startTransition as pn,useCallback as Gr,useRef as Xr}from"react";import{useCallback as fn}from"react";import{useSetAtom as Ae}from"jotai";function Ur(){let e=Ae(Qt),t=Ae(ar),r=Ae(or);return fn(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function Yr(){let e=Ur(),t=Xr({}),r=Xr(new Set),o=Gr((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=Gr(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),pn(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}import{jsx as Se}from"react/jsx-runtime";function yn(e){let[t,r,o]=Yr(),[n,i]=Br(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return gn([[E,e.value??{}]]),Se(Gt,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>Se(Vr,{disabled:l,fields:a,children:s=>Se(gr,{...s,config:e.config,onMount:r,onUnmount:o,value:i.data})})})}export{yn as Form};
1
+ import{jsx as F,jsxs as ue}from"react/jsx-runtime";function Fe(e){let t=Array.isArray(e.details)?e.details:e.details?Object.values(e.details).flat():null;return ue("div",{"data-slot":"alert",role:"alert",className:"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border bg-transparent px-4 py-3 text-sm text-red-500 has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 *:data-[slot=alert-description]:text-red-500/90 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",children:[ue("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[F("circle",{cx:"12",cy:"12",r:"10"}),F("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),F("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})]}),F("div",{"data-slot":"alert-title",className:"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",children:e.title}),ue("div",{"data-slot":"alert-description",className:"col-start-2 grid justify-items-start gap-1 text-sm",children:[e.description&&F("p",{children:e.description}),t&&F("ul",{className:"list-inside list-disc text-sm",children:t.map((r,o)=>F("li",{children:r},o))})]})]})}import{jsx as Zr}from"react/jsx-runtime";function Ie(e){return Zr("div",{"data-slot":"field-control",className:"w-full",children:e.children})}import{jsx as jr}from"react/jsx-runtime";function V(e){return jr("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 U="input",Ce="input/email",ve="input/number";var Pe="textarea",ke="radio",Oe="checkbox",we="select",De="select/month",Ve="select/year";var de="column";var Le="label",v="value",G="options",me="email",Me="number",_e="password",Be="tel",L="text",Ue="aria-errormessage",Ge="aria-invalid",Xe="data-invalid",Ye="data-readonly",He="aria",qe="data",X="min",Y="max",$e="minLength",Ke="maxLength",P="$ref",We="source";var H="http://luna.internal",R="vertical",k="horizontal";function s(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function q(e){return e==null||e===""}function A(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function I(e){return typeof e=="string"}function ze(e){return s(e)&&"url"in e}var Jr=/[^/]+$/;function Ze(e,t=[],r=v){if(Array.isArray(t))return t.find(o=>{let n=fe(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function fe(e,t=v){if(e!=null){if(A(e))return e;if(s(e)){let r=Qr(e,t);if(A(r))return r}}}function Qr(e,t){let r=S(e,t);if(A(r))return r}function je(e,t){if(Array.isArray(e))return e;let r=S(e,t);return Array.isArray(r)?r:null}function S(e,t){if(!t||!s(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(s(o)&&n in o)o=o[n];else return null;return o}function Je(e,t={label:Le,value:v}){return e.map(r=>{if(s(r)){let o=S(r,t.label),n=S(r,t.value);if(A(o)&&A(n))return{label:`${o}`,value:`${n}`}}return r})}function Qe(e=L){if(e){let t=e.match(Jr);if(t){let[r]=t;if(r!==U)return r.trim().toLowerCase()}}return L}function et(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var eo=/\[([^\]]+)\]\(([^)]+)\)/g;function C(e,t={}){if(I(e))return to(e,t);if(Array.isArray(e))return e.map(r=>C(r,t));if(s(e)){let r={};for(let o in e)r[o]=C(e[o],t);return r}return e}function $(e){return I(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>$(t)):s(e)?Object.values(e).some(t=>$(t)):!1}function to(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?S(t,o):t[o];return A(n)?String(n):r})}function tt(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=eo.exec(e))!==null;){let[l,a,u]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,u,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var K=e=>b(De)(e),W=e=>b(Ve)(e),T=b(Oe),pe=b(U),h=b(ke),y=b(we),ge=b(Pe),rt=b(L,me,_e,Be),ot=b(Ce,me),z=b(ve,Me);function nt(e){return h(e)||T(e)}function it(e){return e.type===de}function lt(e){return e.type!==de}function at(e){return y(e)||h(e)}function st(e){return pe(e)||ge(e)}function ye(e){return e!=null&&e!==""}function b(...e){return t=>{let r=I(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function ct(e,t={}){if(y(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&s(r))return[r]}}function Z(e){return h(e)||T(e)?k:e.advanced?.orientation??R}function ut(e,t){let r=e.readonly??!1;return t||r}function dt(e){if(h(e)||y(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||s(t)&&!(P in t))return t}}function mt(e,t){let r=dt(e);return r||ct(e,t)}function ro(e,t){let r=s(t)&&e.name in t?t[e.name]:t;return fe(r,e.advanced?.entity)}function oo(e,t,r){return at(e)&&Array.isArray(r)?{...t,[G]:r}:t}function no(e,t,r){if(e.required&&!ye(r)&&y(e)&&e.advanced?.preselected!==!1&&G in t){let o=t[G];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function io(e,t){return y(e)&&Array.isArray(t)?Je(t,e.advanced?.options):t}function ft(e,t,r,o){let n=ro(e,o),i=Array.isArray(r)?io(e,r):r,l=oo(e,t,i),a=no(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function pt(e,t){return T(e)?{checked:ye(t)}:{value:t??""}}var lo=/^#\/definition\//;function J(e=[],t){let r=j(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>gt(o)-gt(n)):[]}function j(e,t,r=new Map,o=new WeakSet){if(!ao(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>j(i,t,r,o));if(P in e&&I(e[P])){let i=e[P].replace(lo,""),l=S(t,i);return l!==null?j(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=j(l,t,r,o);return o.delete(e),r.set(e,n),n}function yt(e){return Object.entries(e??{})}function gt(e){return e.order??Number.MAX_VALUE}function ao(e){return e!==void 0&&s(e)&&Object.keys(e).length>0}function xt(e,t){let r={};for(let[o,n]of yt(t))r[`${e}-${o}`]=n;return r}function bt(e){return xt(He,e)}function Tt(e){return xt(qe,e)}var ht={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Rt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function At(e,t=2){return ht[e&&e in ht?e:t]}function St(e){if(e&&e in Rt)return Rt[e]}var so=/^\d+$/;function Et(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Nt(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function xe(){return new Date().getFullYear()}function be(e,t){if(typeof e=="number")return e;let r=t??xe(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return so.test(o)?parseInt(o,10):r}import{z as c}from"zod";var co=[[z,go],[ot,uo],[W,yo],[K,xo],[T,mo],[h,fo]];function Ft(e){return c.object(e)}function It(e){let t={},r=c.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function Ct(e){for(let[t,r]of co)if(t(e))return r(e);return po(e)}function uo(e){let t=c.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(c.email(e.validation?.email));return c.preprocess(o=>q(o)?"":o,r)}return t.pipe(c.email(e.validation?.email)).or(c.literal("")).nullable()}function mo(e){let t=c.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),c.preprocess(r=>r===null?!1:r,t)):t.nullable()}function fo(e){let t=c.coerce.string();return e.required?(t=t.min(1,e.validation?.required),c.preprocess(r=>q(r)?"":r,t)):t.or(c.literal("")).nullable()}function po(e){let t=c.coerce.string().trim();return t=vt(t,e),e.required?(t=Pt(t,e),c.preprocess(r=>q(r)?"":r,t)):t.nullable()}function go(e){let t=c.coerce.number().int();return t=vt(t,e),e.required?(t=Pt(t,e),c.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function yo(e){if(e.required){let t=c.coerce.number({message:e.validation?.required}).int();return c.preprocess(bo,t)}return c.coerce.number().int().nullable()}function xo(e){let t=c.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function bo(e){return e===null||e===""?void 0:e}function vt(e,t){return e=To(e,t),e=ho(e,t),e}function Pt(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var To=(e,t)=>kt(e,t,X),ho=(e,t)=>kt(e,t,Y);function kt(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function Ot(e,t){if(!t||!Ao(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||Ro(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function Ro(e){return e==="https"?"443":"80"}function Ao(e){return/^(https?:)?\/\//.test(e)}function wt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,H);new URL(t,H).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(H,""):n}catch{return t||e}}function Dt(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=wt(t.url,r.url),n=So(t,r),i=Eo(t,r);return{...t,...r,url:o,body:n,headers:i}})}function So(e,t){return s(t.body)&&s(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Eo(e,t){return s(t.headers)&&s(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function Vt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===v&&r.push(n),n.action===We&&o.push(n)}),t({sources:o,values:r})}function Lt(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if(ze(i)){let l=C(i.url,e),a=i.body?C(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function Mt(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?C(i,e):void 0)})})}import{jsx as No}from"react/jsx-runtime";function M(e){return tt(e,(t,r,o)=>No("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}import{Fragment as Fo,jsx as _t,jsxs as Io}from"react/jsx-runtime";function Bt(e){return Io(Fo,{children:[_t("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:M(e.title)}),_t("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:M(e.description)})]})}import{jsx as Te,jsxs as Co}from"react/jsx-runtime";function Ut(e){if(!e.section.title&&!e.section.description)return Te(V,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return Co("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[Te(Bt,{description:e.section.description,title:e.section.title}),Te(V,{compact:e.section.compact,children:e.children})]})}import{Fragment as vo}from"react";import{jsx as Gt}from"react/jsx-runtime";function Xt(){return Gt("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:Gt("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as _,jsxs as Yt}from"react/jsx-runtime";function Ht(e){let t=J(e.sections,e.definition);return _("div",{className:"h-full w-full",children:_("form",{noValidate:e.noValidate,action:e.action,children:Yt(V,{children:[t.map((r,o)=>Yt(vo,{children:[_(Ut,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&_(Xt,{})]},o)),e.control&&_(Ie,{children:e.control})]})})})}import{jsx as Po}from"react/jsx-runtime";function qt(e){return Po("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 Q(e){let t=M(e.text);return t?ko(qt,{children:t}):null}import{twMerge as Oo}from"tailwind-merge";import{jsx as wo,jsxs as Do}from"react/jsx-runtime";function $t(e){let t=h(e.field)||T(e.field);return Do("label",{"data-slot":"field-label","data-normal":t,className:Oo("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&wo("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as Kt,jsxs as Vo}from"react/jsx-runtime";function Wt(e){return Vo("div",{"data-slot":"field-content",className:"flex w-full flex-1 flex-col gap-1.5 leading-snug",children:[Kt($t,{field:e.field,children:e.field.label}),e.orientation===k&&Kt(Q,{text:e.field.description})]})}import{Fragment as Lo,jsx as zt,jsxs as Mo}from"react/jsx-runtime";function Zt(e){let t=Z(e.field);return Mo(Lo,{children:[e.field.name&&e.field.label&&zt(Wt,{field:e.field,orientation:t}),e.children,t===R&&e.field.description&&zt(Q,{text:e.field.description})]})}function jt(e,t){return e?t(e):null}import{atom as _o}from"jotai";import{atom as O}from"jotai";import{atomFamily as Jt}from"jotai-family";import{deepEqual as he}from"fast-equals";function ee(e){return Jt(t=>O(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!he(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function Qt(e){return O(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function te(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function re(e){return O(null,(t,r,o)=>{let n=t(e);he(n,o)||r(e,o)})}function er(e,t={}){let{merge:r,validateTarget:o}=t;return Jt(n=>O(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,u)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(u!=null){let N=m[n];(!N||!he(N,u))&&(m[n]=u,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:N,...w}=d;l(e,w)}else l(e,{...d,[a]:m})}))}function tr(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let u={...i[a]},d=!1;for(let m of o)u[m]&&(delete u[m],d=!0,l=!0);d&&(Object.keys(u).length===0?delete i[a]:i[a]=u)}l&&r(e,i)})}var B=_o({}),rr=te(B),or=re(B),nr=ee(B);import{atom as Bo}from"jotai";var E=Bo({}),ir=Qt(E),lr=te(E),xl=re(E),ar=ee(E);import{startTransition as Wo}from"react";import{useAtom as zo,useSetAtom as yr}from"jotai";import{atom as Uo}from"jotai";var sr=Uo({}),cr=er(sr,{merge:e=>{let t=Dt(e);if(t)return t},validateTarget:e=>e.trim()!==""}),ur=tr(sr);import{useAtom as Yo}from"jotai";import Go from"swr";function dr(e=null,t,r=!1){let{data:o,error:n}=Go(Xo(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[je(o,e.namespace)]}return[null]}function Xo(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!$(e.url)){if(Ot(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function mr(e,t,r){let o=mt(e,r),[n,i]=Yo(cr(e.name)),l=n??o,[a]=dr(l,t,e.disabled);return[a,i]}import{useEffect as Ho,useEffectEvent as fr,useMemo as qo}from"react";function pr(e,t,r){let o=qo(()=>Ct(e),[e]),n=fr(l=>{l&&t(l,o)}),i=fr(l=>{l&&r(l)});return Ho(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}import{useEffect as $o,useRef as Ko}from"react";function gr(){let e=Ko(null);$o(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}import{jsx as xr}from"react/jsx-runtime";function br(e){let t=yr(nr(e.field.name)),[r,o]=zo(ar(e.field.name)),n=yr(E),[i]=pr(e.field,e.onMount,e.onUnmount),[l,a]=mr(e.field,e.config,r),{commonPropsWithOptions:u,defaultValue:d}=ft(e.field,e.commonProps,l,r),m=pt(e.field,d),[N]=gr();function w(p,f){if(st(e.field)){N(()=>{f({value:p})},500);return}let x=Ze(p,l,e.field.advanced?.entity);f(x)}function le(p){let f=p.target.value;o(f),e.config.validation.change&&D(f);let x=e.field.event?.change;x&&w(f,g=>{Vt(x,({sources:Kr,values:Wr})=>{Wo(()=>{Lt(g,Kr,(se,ce)=>a(se,ce)),Mt(g,Wr,(se,ce)=>{n(zr=>({...zr,[se]:ce}))})})})})}function ae(p){if(nt(e.field))return;let f=p.target.value;e.config.validation.blur&&D(f)}function D(p){let x=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(x)}return jt(e.config.inputs[e.field.type],p=>xr(Zt,{field:e.field,children:xr(p,{...u,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:ae,onChange:le})}))}import{twMerge as Zo}from"tailwind-merge";import{jsx as Tr}from"react/jsx-runtime";function hr(e){let t=At(e.column?.advanced?.cols);return Tr("div",{className:"flex w-full flex-col gap-4",children:Tr("div",{className:Zo("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{jsx as Rr}from"react/jsx-runtime";function Ar(e){return!e.errors||e.errors.length===0?null:Rr("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>Rr("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{twMerge as jo}from"tailwind-merge";import{jsx as Jo}from"react/jsx-runtime";function oe(e){let t=e.errors&&e.errors.length>0;return Jo("div",{"data-slot":"field",...t&&{[Xe]:"true"},...e.disabled&&{[Ye]:"true"},"data-orientation":e.orientation,className:jo("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",St(e.cols),e.className),children:e.children})}import{jsx as Qo}from"react/jsx-runtime";function Sr(e){return Qo(oe,{...e,orientation:R,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}import{jsx as en}from"react/jsx-runtime";function Er(e){return en(oe,{...e,orientation:k,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}import{jsx as Nr}from"react/jsx-runtime";function Fr(e){return e.orientation===R?Nr(Sr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):Nr(Er,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var ne=xe();function Ir(e){if(y(e))return tn(e)}function tn(e){if(K(e))return Et();if(W(e)){let t=e.advanced?.length?.min??ne,r=e.advanced?.length?.max??ne+5;return Nt(be(t,ne),be(r,ne))}}function Cr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return pe(e)?{...r,...rn(e)}:y(e)?{...r,...on(e)}:ge(e)?{...r,...nn(e)}:r}function rn(e){let t=Qe(e.type),r={...e,type:t};return{...vr(e),...ln(r),...rt(r)?Pr(r):{},type:t}}function on(e){let t=Ir(e);return t?{options:t}:{}}function nn(e){return{...vr(e),...Pr(e)}}function vr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ln(e){return z(e)?an(e):{}}function Pr(e){return kr(e,{min:$e,max:Ke})}function an(e){return kr(e,{min:X,max:Y})}function kr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function Or(e,t){let r=bt(e.advanced?.aria);return t&&t.length>0&&(r[Ge]="true",r[Ue]=`${e.name}-error`),r}function wr(e){return Tt(e.advanced?.data)}function Dr(e){if(!e.field.type)return null;let t=Cr(e.field,e.disabled),r=wr(e.field),o=Or(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}import{jsx as Re,jsxs as sn}from"react/jsx-runtime";function Vr(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=Z(e.field),n=ut(e.field,e.disabled);return sn("div",{className:"flex flex-col gap-3",children:[Re(Fr,{cols:t,disabled:n,errors:r,orientation:o,children:Re(Dr,{disabled:n,errors:r,field:e.field,children:e.children})}),Re(Ar,{errors:r,name:e.field.name})]})}import{useAtomValue as cn}from"jotai";import{jsx as un}from"react/jsx-runtime";function Lr(e){return r=>{let o=cn(B);return un(e,{...r,errors:o})}}var Mr=Lr(Vr);import{Fragment as dn}from"react";import{jsx as Ae,jsxs as mn}from"react/jsx-runtime";function Se(e){let t=J(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>mn(dn,{children:[it(n)&&Ae(r,{column:n,children:Ae(Se,{...e,fields:n.fields})}),lt(n)&&Ae(o,{disabled:e.disabled,field:n,children:e.children})]},i))}import{jsx as fn}from"react/jsx-runtime";var _r=e=>fn(Se,{...e,components:{column:hr,field:Mr}});import{useSetAtom as Br}from"jotai";import{startTransition as Ee,useActionState as pn}from"react";function Xr(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},u=Br(or),d=Br(ir),m={data:a,error:null,success:!1},[N,w,le]=pn(async(ae,D)=>{let p=Ft(e());if(l===!1)return t?await t(D,p):ae;let f=et(D),x=p.safeParse(f);if(!x.success){let g=It(x.error);return Ee(()=>{u(g)}),Gr(f,{details:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||Ee(()=>{d()})):g.error&&Ee(()=>{o?.(g.error)}),Ur(f,i)}catch(g){return Gr(f,{title:"An unexpected error occurred submitting the form.",details:gn(g)})}return Ur(x.data,i)},m);return[w,N,le]}function gn(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Ur(e,t=!1){return{data:t?e:null,error:null,success:!0}}function Gr(e,t){return{data:e,error:t,success:!1}}import{useHydrateAtoms as bn}from"jotai/utils";import{startTransition as xn,useCallback as Hr,useRef as qr}from"react";import{useCallback as yn}from"react";import{useSetAtom as Ne}from"jotai";function Yr(){let e=Ne(rr),t=Ne(ur),r=Ne(lr);return yn(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function $r(){let e=Yr(),t=qr({}),r=qr(new Set),o=Hr((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=Hr(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),xn(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}import{Fragment as hn,jsx as ie,jsxs as Rn}from"react/jsx-runtime";function Tn(e){let[t,r,o]=$r(),[n,i]=Xr(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return bn([[E,e.value??{}]]),ie(Ht,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>Rn(hn,{children:[!i.success&&i.error&&ie(Fe,{title:i.error.title,description:i.error.description,details:i.error.details}),ie(_r,{disabled:l,fields:a,children:u=>ie(br,{...u,config:e.config,onMount:r,onUnmount:o,value:i.data})})]})})}export{Tn as Form};
@@ -122,7 +122,8 @@ export type RemotePattern = {
122
122
  };
123
123
  export type FormStateError = {
124
124
  title: string;
125
- detail?: Nullable<Record<string, string[]> | string[]>;
125
+ description?: string;
126
+ details?: Nullable<Record<string, string[]> | string[]>;
126
127
  };
127
128
  export type BaseConfig<T> = {
128
129
  env?: Environment;
@@ -2,7 +2,7 @@ import { type FormState } from '../hook/use-form-action';
2
2
  import type { Definition, FormStateError, Nullable, Sections, ZodSchema } from '@luna-form/core';
3
3
  import type { Config } from '../../type';
4
4
  export declare function Form<T extends Record<string, unknown> = Record<string, unknown>>(props: Readonly<{
5
- action?: (formData: unknown, schema?: ZodSchema) => Promise<FormState<T>>;
5
+ action?: <K>(formData: K, schema?: ZodSchema) => Promise<FormState<T>>;
6
6
  children?: React.ReactNode;
7
7
  config: Config;
8
8
  definition?: Definition;
@@ -0,0 +1,6 @@
1
+ import type { Nullable } from '@luna-form/core';
2
+ export declare function Alert(props: Readonly<{
3
+ title: string;
4
+ description?: string;
5
+ details?: Nullable<Record<string, string[]> | string[]>;
6
+ }>): import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-luna-form",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
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",
@@ -32,7 +32,7 @@
32
32
  "eslint-plugin-react": "7.37.5",
33
33
  "eslint-plugin-react-hooks": "7.0.1",
34
34
  "eslint-plugin-react-refresh": "0.4.26",
35
- "@luna-form/core": "0.0.7"
35
+ "@luna-form/core": "0.0.8"
36
36
  },
37
37
  "license": "Apache-2.0",
38
38
  "repository": {