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