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