react-luna-form 0.0.3 → 0.0.5
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/{config → luna-core/src}/fetcher.d.ts +1 -1
- package/dist/types/luna-core/src/handle/proxy-event.d.ts +5 -0
- package/dist/types/luna-core/src/handle/source-event.d.ts +2 -0
- package/dist/types/luna-core/src/handle/value-event.d.ts +2 -0
- package/dist/types/luna-core/src/helper/input.d.ts +41 -0
- package/dist/types/luna-core/src/index.d.ts +19 -0
- package/dist/types/luna-core/src/type.d.ts +145 -0
- package/dist/types/luna-core/src/util/build.d.ts +5 -0
- package/dist/types/{util → luna-core/src/util}/constant.d.ts +19 -4
- package/dist/types/luna-core/src/util/extract.d.ts +14 -0
- package/dist/types/luna-core/src/util/is-input.d.ts +17 -0
- package/dist/types/luna-core/src/util/is-type.d.ts +6 -0
- package/dist/types/luna-core/src/util/prepare.d.ts +4 -0
- package/dist/types/luna-core/src/util/schema.d.ts +14 -0
- package/dist/types/luna-core/src/util/source.d.ts +2 -0
- package/dist/types/luna-core/src/util/string.d.ts +7 -0
- package/dist/types/luna-core/src/util/stringify.d.ts +1 -0
- package/dist/types/luna-core/src/util/url.d.ts +10 -0
- package/dist/types/luna-react/src/client/component/form.d.ts +14 -0
- package/dist/types/{client → luna-react/src/client}/component/input.d.ts +4 -5
- package/dist/types/{component/slot → luna-react/src/client/component}/slot.d.ts +2 -1
- package/dist/types/{client/component/wrapper/field.d.ts → luna-react/src/client/component/wrapper/index.d.ts} +1 -2
- package/dist/types/luna-react/src/client/hook/use-data-source.d.ts +3 -0
- package/dist/types/luna-react/src/client/hook/use-fetch.d.ts +3 -0
- package/dist/types/luna-react/src/client/hook/use-form-action.d.ts +14 -0
- package/dist/types/{client/hook/useInput.d.ts → luna-react/src/client/hook/use-input.d.ts} +1 -1
- package/dist/types/{client/hook/useSchema.d.ts → luna-react/src/client/hook/use-schema.d.ts} +1 -1
- package/dist/types/luna-react/src/client/hook/use-store.d.ts +1 -0
- package/dist/types/luna-react/src/client/hook/use-timeout.d.ts +1 -0
- package/dist/types/{client → luna-react/src/client}/index.d.ts +1 -1
- package/dist/types/luna-react/src/client/lib/error-store.d.ts +10 -0
- package/dist/types/luna-react/src/client/lib/source-store.d.ts +8 -0
- package/dist/types/luna-react/src/client/lib/store-helper.d.ts +21 -0
- package/dist/types/luna-react/src/client/lib/value-store.d.ts +13 -0
- package/dist/types/{component → luna-react/src/component}/column.d.ts +2 -3
- package/dist/types/{component → luna-react/src/component}/description.d.ts +1 -1
- package/dist/types/luna-react/src/component/field/field-base.d.ts +10 -0
- package/dist/types/{component → luna-react/src/component/field}/field-error.d.ts +1 -1
- package/dist/types/luna-react/src/component/field/field-group.d.ts +8 -0
- package/dist/types/luna-react/src/component/field/field-horizontal.d.ts +6 -0
- package/dist/types/{component → luna-react/src/component/field}/field-set.d.ts +2 -2
- package/dist/types/luna-react/src/component/field/field-vertical.d.ts +6 -0
- package/dist/types/{component → luna-react/src/component/field}/field.d.ts +2 -2
- package/dist/types/{component → luna-react/src/component}/form.d.ts +4 -1
- package/dist/types/luna-react/src/component/formatted-description.d.ts +3 -0
- package/dist/types/{component → luna-react/src/component}/group.d.ts +1 -0
- package/dist/types/{component → luna-react/src/component}/input/input-attributes.d.ts +1 -1
- package/dist/types/{component → luna-react/src/component}/input/input-base.d.ts +2 -2
- package/dist/types/{component → luna-react/src/component}/input/input-common.d.ts +1 -1
- package/dist/types/{component → luna-react/src/component}/input/input-option-select.d.ts +1 -1
- package/dist/types/luna-react/src/component/input-group.d.ts +5 -0
- package/dist/types/luna-react/src/component/input-label.d.ts +5 -0
- package/dist/types/{component → luna-react/src/component}/label.d.ts +2 -2
- package/dist/types/{component → luna-react/src/component}/slot/slot-base.d.ts +3 -3
- package/dist/types/{client/component → luna-react/src/component/slot}/slot.d.ts +2 -2
- package/dist/types/luna-react/src/config/index.d.ts +28 -0
- package/dist/types/luna-react/src/lib/render-If-exists.d.ts +1 -0
- package/dist/types/luna-react/src/lib/string.d.ts +1 -0
- package/dist/types/{server → luna-react/src/server}/component/fallback.d.ts +2 -1
- package/dist/types/{client → luna-react/src/server}/component/form.d.ts +3 -2
- package/dist/types/{server → luna-react/src/server}/component/input.d.ts +3 -2
- package/dist/types/{server → luna-react/src/server}/index.d.ts +1 -1
- package/dist/types/luna-react/src/type.d.ts +16 -0
- package/package.json +6 -4
- package/dist/types/client/component/wrapper/column.d.ts +0 -5
- package/dist/types/client/hook/useDataSource.d.ts +0 -2
- package/dist/types/client/hook/useFormAction.d.ts +0 -2
- package/dist/types/client/lib/error-store.d.ts +0 -7
- package/dist/types/config/index.d.ts +0 -9
- package/dist/types/server/component/form.d.ts +0 -9
- package/dist/types/type.d.ts +0 -114
- package/dist/types/util/build.d.ts +0 -4
- package/dist/types/util/extract.d.ts +0 -5
- package/dist/types/util/helper/input.d.ts +0 -11
- package/dist/types/util/is-input.d.ts +0 -14
- package/dist/types/util/is-type.d.ts +0 -3
- package/dist/types/util/prepare.d.ts +0 -3
- package/dist/types/util/schema.d.ts +0 -12
- /package/dist/types/{util → luna-core/src/util}/attributes.d.ts +0 -0
- /package/dist/types/{util → luna-core/src/util}/column.d.ts +0 -0
- /package/dist/types/{util → luna-core/src/util}/date.d.ts +0 -0
- /package/dist/types/{client → luna-react/src/client}/component/wrapper/with-error.d.ts +0 -0
- /package/dist/types/{component → luna-react/src/component}/control.d.ts +0 -0
- /package/dist/types/{component → luna-react/src/component}/legend.d.ts +0 -0
- /package/dist/types/{component → luna-react/src/component}/separator.d.ts +0 -0
package/dist/client/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Bt=Object.create;var E=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Wt=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var zt=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0})},J=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ht(t))!$t.call(e,o)&&o!==r&&E(e,o,{get:()=>t[o],enumerable:!(n=Gt(t,o))||n.enumerable});return e};var Zt=(e,t,r)=>(r=e!=null?Bt(Wt(e)):{},J(t||!e||!e.__esModule?E(r,"default",{value:e,enumerable:!0}):r,e)),Kt=e=>J(E({},"__esModule",{value:!0}),e);var yr={};zt(yr,{Form:()=>Yt});module.exports=Kt(yr);var j=require("react/jsx-runtime");function Q(e){return(0,j.jsx)("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}var ee=require("react/jsx-runtime");function A(e){return(0,ee.jsx)("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}var p=require("react/jsx-runtime");function te(e){return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),(0,p.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}var y=require("react/jsx-runtime");function re(e){return!e.title&&!e.description?(0,y.jsx)(A,{children:e.children}):(0,y.jsxs)("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[(0,y.jsx)(te,{title:e.title,description:e.description}),(0,y.jsx)(A,{children:e.children})]})}var ie=require("react");var U=require("react/jsx-runtime");function ne(){return(0,U.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,U.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function F(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>oe(t)-oe(r)):[]}function oe(e){return e.order??Number.MAX_VALUE}function I(e){return Object.entries(e??{})}var u=require("react/jsx-runtime");function le(e){let t=F(e.sections);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)(A,{children:[t.map((r,n)=>(0,u.jsxs)(ie.Fragment,{children:[(0,u.jsx)(re,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,u.jsx)(ne,{})]},n)),e.control&&(0,u.jsx)(Q,{children:e.control})]})})})}var ue=require("react/jsx-runtime");function ae(e){return(0,ue.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var Y=require("react/jsx-runtime");function N(e){return!e.errors||e.errors.length===0?null:(0,Y.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,Y.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var P=require("jotai"),se=require("jotai-family"),s=(0,P.atom)({}),ce=(0,se.atomFamily)(e=>(0,P.atom)(t=>t(s)[e]??null,(t,r,n)=>{let o=t(s);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(s,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(s,l)}})),me=(0,P.atom)(null,(e,t,r)=>{let n=e(s);Jt(n,r)&&t(s,r)});function Jt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let d=new Set(i);if(!l.every(f=>d.has(f)))return!0}}return!1}var ot=require("jotai");var De=Zt(require("swr"),1);function b(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function M(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var q="input",de="input/email",fe="input/number",pe="textarea",X="column",ge="fields",ye="radio",be="value",xe="select",he="select/month",Ae="select/year",B="email",Te="number",Ce="password";var v="text",Se="aria-errormessage",Re="aria-invalid",Ee="data-invalid",Fe="aria",Ie="data";var Ne="minLength",Pe="maxLength";function Me(e,t=be){if(e!=null){if(M(e))return e;if(b(e)){let r=Qt(e,t);if(M(r))return r}}}function Qt(e,t){let r=we(e,t);if(M(r))return r}function ve(e,t){if(Array.isArray(e))return e;let r=we(e,t);return Array.isArray(r)?r:null}function we(e,t){if(!t||!b(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(b(n)&&o in n)n=n[o];else return null;return n}function Le(e=null,t,r=!1){let{data:n}=(0,De.default)(jt(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[ve(n,e.namespace)]}return[null]}function jt(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function w(e){return e.type===he}function D(e){return e.type===Ae}function _e(e){return c(e)||G(e)}var Oe=H(q),G=H(ye),c=H(xe);function ke(e){return e.type===X&&ge in e}function Ve(e){return e.type!==X}function Ue(e){return e.type===pe}function Ye(e){return e.type===v||e.type===B||e.type===Ce||e.type==="tel"}function L(e){return e.type===fe||e.type===Te}function qe(e){return e.type===de||e.type===B}function Xe(e=v){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==q)return r.trim().toLowerCase()}}return v}function H(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}var a=require("zod"),tr=[[L,or],[qe,rr],[D,ir],[w,lr]];function He(e){return a.z.object(e)}function We(e){let t={},r=a.z.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function $e(e){for(let[t,r]of tr)if(t(e))return r(e);return nr(e)}function rr(e){let t=a.z.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.z.literal("")).nullable()}function nr(e){let t=a.z.coerce.string().trim();return t=ze(t,e),e.required?(t=Ze(t,e),a.z.preprocess(r=>r===null?"":r,t)):t.nullable()}function or(e){let t=a.z.coerce.number().int();return t=ze(t,e),e.required?(t=Ze(t,e),a.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function ir(e){if(e.required){let t=a.z.coerce.number({message:e.validation?.required}).int();return a.z.preprocess(ar,t)}return a.z.coerce.number().int().nullable()}function lr(e){let t=a.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function ar(e){return e==null||e===""?void 0:e}function ze(e,t){return e=ur(e,t),e=sr(e,t),e}function Ze(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var ur=(e,t)=>Ke(e,t,"min"),sr=(e,t)=>Ke(e,t,"max");function Ke(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}var T=require("react");function Je(e,t,r){let n=$e(e),o=(0,T.useEffectEvent)(l=>{l&&t(l,n)}),i=(0,T.useEffectEvent)(l=>{l&&r(l)});return(0,T.useEffect)(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function Qe(e,t={}){if(c(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&b(r))return[r]}}function je(e,t){if(t){let r=t[e.name];if(G(e)||c(e)&&!e.disabled)return r}}function et(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function tt(e,t,r){let n=Qe(e,t);return je(e,r)??n}function rt(e,t){return Me(e.name?t?.[e.name]:void 0)}function nt(e,t,r){return _e(e)&&Array.isArray(r)?{...t,options:r}:t}var m=require("react/jsx-runtime");function it(e){let t=rt(e.field,e.value),r=tt(e.field,e.value,e.source),[n,o]=(0,ot.useAtom)(ce(e.field.name)),[i]=Je(e.field,e.onMount,e.onUnmount),[l]=Le(r,e.config,e.field.disabled),d=nt(e.field,e.commonProps,l);function g(h){let R=h.target.value;Z(R)}function f(h){let R=h.target.value;Z(R)}function Z(h){let qt=i.safeParse(h).error?.issues.map(Xt=>Xt.message)??[];o(qt)}let K=e.config.inputs[e.field.type];return K?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(K,{...e.ariaAttributes,...d,...e.dataAttributes,defaultValue:t,onBlur:f,onChange:g}),e.field.description&&(0,m.jsx)(ae,{children:e.field.description}),!e.withinColumn&&(0,m.jsx)(N,{name:e.field.name,errors:n})]}):null}var lt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},at={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function ut(e,t=2){return lt[e&&e in lt?e:t]}function st(e){if(e&&e in at)return at[e]}var ct=require("tailwind-merge"),C=require("react/jsx-runtime");function mt(e){let t=ut(e.column?.advanced?.cols),r=e.column?.fields??[],n=I(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return(0,C.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,C.jsx)("div",{className:(0,ct.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),(0,C.jsx)(N,{errors:n})]})}var dt=require("jotai"),ft=require("react/jsx-runtime");function _(e){return r=>{let n=(0,dt.useAtomValue)(s);return(0,ft.jsx)(e,{...r,errors:n})}}var pt=_(mt);function gt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function yt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function W(){return new Date().getFullYear()}function $(e,t){if(typeof e=="number")return e;let r=t??W(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var O=W();function bt(e){if(c(e))return cr(e)}function cr(e){if(w(e))return gt();if(D(e)){let t=e.advanced?.length?.min??O,r=e.advanced?.length?.max??O+5;return yt($(t,O),$(r,O))}}function xt(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Oe(e)?{...r,...mr(e)}:c(e)?{...r,...dr(e)}:Ue(e)?{...r,...fr(e)}:r}function mr(e){let t=Xe(e.type),r={...e,type:t};return{...ht(e),...pr(r),...Ye(r)?At(r):{},type:t}}function dr(e){let t=bt(e);return t?{options:t}:{}}function fr(e){return{...ht(e),...At(e)}}function ht(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function pr(e){return L(e)?gr(e):{}}function At(e){return Tt(e,{min:Ne,max:Pe})}function gr(e){return Tt(e,{min:"min",max:"max"})}function Tt(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 Ct(e,t){let r={};for(let[n,o]of I(t))r[`${e}-${n}`]=o;return r}function St(e){return Ct(Fe,e)}function Rt(e){return Ct(Ie,e)}function Et(e,t){let r=St(e.advanced?.aria);return t&&t.length>0&&(r[Re]="true",r[Se]=`${e.name}-error`),r}function Ft(e){return Rt(e.advanced?.data)}function It(e){if(!e.field.type)return null;let t=xt(e.field,e.disabled),r=Ft(e.field),n=Et(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}var k=require("react/jsx-runtime");function Nt(e){return(0,k.jsxs)("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&(0,k.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var Pt=require("tailwind-merge"),S=require("react/jsx-runtime");function Mt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return(0,S.jsxs)("div",{...t&&{[Ee]:"true"},"data-slot":"field",className:(0,Pt.twMerge)("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",st(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&(0,S.jsx)(Nt,{name:e.field.name,required:e.field.required,children:e.field.label}),(0,S.jsx)(It,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var vt=_(Mt);var wt=require("react");var x=require("react/jsx-runtime");function z(e){let t=F(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>(0,x.jsxs)(wt.Fragment,{children:[ke(o)&&(0,x.jsx)(r,{column:o,children:(0,x.jsx)(z,{...e,fields:o.fields,withinColumn:!0})}),Ve(o)&&(0,x.jsx)(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}var Lt=require("react/jsx-runtime"),Dt=e=>(0,Lt.jsx)(z,{...e,components:{column:pt,field:vt}});var _t=require("react"),Ot=require("jotai");function kt(e,t){let r=(0,Ot.useSetAtom)(me);async function n(o){let i=e(),l=He(i),d=Object.fromEntries(o),g=l.safeParse(d);if(!g.success){let f=We(g.error);(0,_t.startTransition)(()=>{r(f)});return}if(t){let f=et(g.data);await t(f)}}return[n]}var Vt=require("react");function Ut(){let e=(0,Vt.useRef)({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}var V=require("react/jsx-runtime");function Yt(e){let[t,r,n]=Ut(),[o]=kt(t,e.action);return(0,V.jsx)(le,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>(0,V.jsx)(Dt,{disabled:i,fields:l,children:d=>(0,V.jsx)(it,{...d,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}
|
|
1
|
+
"use strict";var Ro=Object.create;var Z=Object.defineProperty;var Ao=Object.getOwnPropertyDescriptor;var So=Object.getOwnPropertyNames;var Eo=Object.getPrototypeOf,No=Object.prototype.hasOwnProperty;var Fo=(e,t)=>{for(var r in t)Z(e,r,{get:t[r],enumerable:!0})},Ue=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of So(t))!No.call(e,n)&&n!==r&&Z(e,n,{get:()=>t[n],enumerable:!(o=Ao(t,n))||o.enumerable});return e};var Io=(e,t,r)=>(r=e!=null?Ro(Eo(e)):{},Ue(t||!e||!e.__esModule?Z(r,"default",{value:e,enumerable:!0}):r,e)),Co=e=>Ue(Z({},"__esModule",{value:!0}),e);var sn={};Fo(sn,{Form:()=>xo});module.exports=Co(sn);var Xe=require("react/jsx-runtime");function Ge(e){return(0,Xe.jsx)("div",{"data-slot":"field-control",className:"w-full",children:e.children})}var Ye=require("react/jsx-runtime");function Y(e){return(0,Ye.jsx)("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var z="input",He="input/email",qe="input/number";var $e="textarea",Ke="radio",We="checkbox",Ze="select",ze="select/month",je="select/year";var Ee="column";var Je="label",D="value",j="options",Ne="email",Qe="number",et="password",tt="tel",H="text",rt="aria-errormessage",ot="aria-invalid",nt="data-invalid",it="data-readonly",lt="aria",at="data",J="min",Q="max",ct="minLength",ut="maxLength",V="$ref",st="source";var ee="http://luna.internal",A="vertical",L="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function te(e){return e==null||e===""}function S(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function C(e){return typeof e=="string"}function dt(e){return c(e)&&"url"in e}var vo=/[^/]+$/;function mt(e,t=[],r=D){if(Array.isArray(t))return t.find(o=>{let n=Fe(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function Fe(e,t=D){if(e!=null){if(S(e))return e;if(c(e)){let r=Po(e,t);if(S(r))return r}}}function Po(e,t){let r=E(e,t);if(S(r))return r}function ft(e,t){if(Array.isArray(e))return e;let r=E(e,t);return Array.isArray(r)?r:null}function E(e,t){if(!t||!c(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(c(o)&&n in o)o=o[n];else return null;return o}function pt(e,t={label:Je,value:D}){return e.map(r=>{if(c(r)){let o=E(r,t.label),n=E(r,t.value);if(S(o)&&S(n))return{label:`${o}`,value:`${n}`}}return r})}function gt(e=H){if(e){let t=e.match(vo);if(t){let[r]=t;if(r!==z)return r.trim().toLowerCase()}}return H}function yt(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var Oo=/\[([^\]]+)\]\(([^)]+)\)/g;function v(e,t={}){if(C(e))return ko(e,t);if(Array.isArray(e))return e.map(r=>v(r,t));if(c(e)){let r={};for(let o in e)r[o]=v(e[o],t);return r}return e}function re(e){return C(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>re(t)):c(e)?Object.values(e).some(t=>re(t)):!1}function ko(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?E(t,o):t[o];return S(n)?String(n):r})}function xt(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=Oo.exec(e))!==null;){let[l,a,s]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,s,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var oe=e=>T(ze)(e),ne=e=>T(je)(e),b=T(We),Ie=T(z),h=T(Ke),y=T(Ze),Ce=T($e),Tt=T(H,Ne,et,tt),bt=T(He,Ne),ie=T(qe,Qe);function ht(e){return h(e)||b(e)}function Rt(e){return e.type===Ee}function At(e){return e.type!==Ee}function St(e){return y(e)||h(e)}function Et(e){return Ie(e)||Ce(e)}function ve(e){return e!=null&&e!==""}function T(...e){return t=>{let r=C(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function Nt(e,t={}){if(y(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function le(e){return h(e)||b(e)?L:e.advanced?.orientation??A}function Ft(e,t){let r=e.readonly??!1;return t||r}function It(e){if(h(e)||y(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(V in t))return t}}function Ct(e,t){let r=It(e);return r||Nt(e,t)}function wo(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return Fe(r,e.advanced?.entity)}function Do(e,t,r){return St(e)&&Array.isArray(r)?{...t,[j]:r}:t}function Vo(e,t,r){if(e.required&&!ve(r)&&y(e)&&e.advanced?.preselected!==!1&&j in t){let o=t[j];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function Lo(e,t){return y(e)&&Array.isArray(t)?pt(t,e.advanced?.options):t}function vt(e,t,r,o){let n=wo(e,o),i=Array.isArray(r)?Lo(e,r):r,l=Do(e,t,i),a=Vo(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function Pt(e,t){return b(e)?{checked:ve(t)}:{value:t??""}}var Mo=/^#\/definition\//;function ce(e=[],t){let r=ae(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>Ot(o)-Ot(n)):[]}function ae(e,t,r=new Map,o=new WeakSet){if(!_o(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>ae(i,t,r,o));if(V in e&&C(e[V])){let i=e[V].replace(Mo,""),l=E(t,i);return l!==null?ae(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=ae(l,t,r,o);return o.delete(e),r.set(e,n),n}function kt(e){return Object.entries(e??{})}function Ot(e){return e.order??Number.MAX_VALUE}function _o(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function wt(e,t){let r={};for(let[o,n]of kt(t))r[`${e}-${o}`]=n;return r}function Dt(e){return wt(lt,e)}function Vt(e){return wt(at,e)}var Lt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Mt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function _t(e,t=2){return Lt[e&&e in Lt?e:t]}function Bt(e){if(e&&e in Mt)return Mt[e]}var Bo=/^\d+$/;function Ut(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Gt(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function Pe(){return new Date().getFullYear()}function Oe(e,t){if(typeof e=="number")return e;let r=t??Pe(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return Bo.test(o)?parseInt(o,10):r}var u=require("zod");var Uo=[[ie,qo],[bt,Go],[ne,$o],[oe,Ko],[b,Xo],[h,Yo]];function Xt(e){return u.z.object(e)}function Yt(e){let t={},r=u.z.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function Ht(e){for(let[t,r]of Uo)if(t(e))return r(e);return Ho(e)}function Go(e){let t=u.z.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.z.email(e.validation?.email));return u.z.preprocess(o=>te(o)?"":o,r)}return t.pipe(u.z.email(e.validation?.email)).or(u.z.literal("")).nullable()}function Xo(e){let t=u.z.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.z.preprocess(r=>r===null?!1:r,t)):t.nullable()}function Yo(e){let t=u.z.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.z.preprocess(r=>te(r)?"":r,t)):t.or(u.z.literal("")).nullable()}function Ho(e){let t=u.z.coerce.string().trim();return t=qt(t,e),e.required?(t=$t(t,e),u.z.preprocess(r=>te(r)?"":r,t)):t.nullable()}function qo(e){let t=u.z.coerce.number().int();return t=qt(t,e),e.required?(t=$t(t,e),u.z.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function $o(e){if(e.required){let t=u.z.coerce.number({message:e.validation?.required}).int();return u.z.preprocess(Wo,t)}return u.z.coerce.number().int().nullable()}function Ko(e){let t=u.z.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Wo(e){return e===null||e===""?void 0:e}function qt(e,t){return e=Zo(e,t),e=zo(e,t),e}function $t(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var Zo=(e,t)=>Kt(e,t,J),zo=(e,t)=>Kt(e,t,Q);function Kt(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function Wt(e,t){if(!t||!Jo(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||jo(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function jo(e){return e==="https"?"443":"80"}function Jo(e){return/^(https?:)?\/\//.test(e)}function Zt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,ee);new URL(t,ee).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(ee,""):n}catch{return t||e}}function zt(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=Zt(t.url,r.url),n=Qo(t,r),i=en(t,r);return{...t,...r,url:o,body:n,headers:i}})}function Qo(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function en(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function jt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===D&&r.push(n),n.action===st&&o.push(n)}),t({sources:o,values:r})}function Jt(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if(dt(i)){let l=v(i.url,e),a=i.body?v(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function Qt(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?v(i,e):void 0)})})}var er=require("react/jsx-runtime");function q(e){return xt(e,(t,r,o)=>(0,er.jsx)("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}var P=require("react/jsx-runtime");function tr(e){return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:q(e.title)}),(0,P.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:q(e.description)})]})}var M=require("react/jsx-runtime");function rr(e){if(!e.section.title&&!e.section.description)return(0,M.jsx)(Y,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return(0,M.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[(0,M.jsx)(tr,{description:e.section.description,title:e.section.title}),(0,M.jsx)(Y,{compact:e.section.compact,children:e.children})]})}var nr=require("react");var ke=require("react/jsx-runtime");function or(){return(0,ke.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,ke.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}var R=require("react/jsx-runtime");function ir(e){let t=ce(e.sections,e.definition);return(0,R.jsx)("div",{className:"h-full w-full",children:(0,R.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,R.jsxs)(Y,{children:[t.map((r,o)=>(0,R.jsxs)(nr.Fragment,{children:[(0,R.jsx)(rr,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,R.jsx)(or,{})]},o)),e.control&&(0,R.jsx)(Ge,{children:e.control})]})})})}var ar=require("react/jsx-runtime");function lr(e){return(0,ar.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var cr=require("react/jsx-runtime");function ue(e){let t=q(e.text);return t?(0,cr.jsx)(lr,{children:t}):null}var ur=require("tailwind-merge"),se=require("react/jsx-runtime");function sr(e){let t=h(e.field)||b(e.field);return(0,se.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,ur.twMerge)("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&(0,se.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var $=require("react/jsx-runtime");function dr(e){return(0,$.jsxs)("div",{"data-slot":"field-content",className:"flex flex-1 flex-col gap-1.5 leading-snug",children:[(0,$.jsx)(sr,{field:e.field,children:e.field.label}),e.orientation===L&&(0,$.jsx)(ue,{text:e.field.description})]})}var O=require("react/jsx-runtime");function mr(e){let t=le(e.field);return(0,O.jsxs)(O.Fragment,{children:[e.field.name&&e.field.label&&(0,O.jsx)(dr,{field:e.field,orientation:t}),e.children,t===A&&e.field.description&&(0,O.jsx)(ue,{text:e.field.description})]})}function fr(e,t){return e?t(e):null}var xr=require("jotai");var k=require("jotai"),we=require("jotai-family"),de=require("fast-equals");function me(e){return(0,we.atomFamily)(t=>(0,k.atom)(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!(0,de.deepEqual)(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function pr(e){return(0,k.atom)(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function fe(e){return(0,k.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function pe(e){return(0,k.atom)(null,(t,r,o)=>{let n=t(e);(0,de.deepEqual)(n,o)||r(e,o)})}function gr(e,t={}){let{merge:r,validateTarget:o}=t;return(0,we.atomFamily)(n=>(0,k.atom)(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,s)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(s!=null){let I=m[n];(!I||!(0,de.deepEqual)(I,s))&&(m[n]=s,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:I,...G}=d;l(e,G)}else l(e,{...d,[a]:m})}))}function yr(e){return(0,k.atom)(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let s={...i[a]},d=!1;for(let m of o)s[m]&&(delete s[m],d=!0,l=!0);d&&(Object.keys(s).length===0?delete i[a]:i[a]=s)}l&&r(e,i)})}var K=(0,xr.atom)({}),Tr=fe(K),br=pe(K),hr=me(K);var Rr=require("jotai");var N=(0,Rr.atom)({}),Ar=pr(N),Sr=fe(N),Bi=pe(N),Er=me(N);var Vr=require("react"),W=require("jotai");var Nr=require("jotai");var Fr=(0,Nr.atom)({}),Ir=gr(Fr,{merge:e=>{let t=zt(e);if(t)return t},validateTarget:e=>e.trim()!==""}),Cr=yr(Fr);var Or=require("jotai");var vr=Io(require("swr"),1);function Pr(e=null,t,r=!1){let{data:o,error:n}=(0,vr.default)(tn(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[ft(o,e.namespace)]}return[null]}function tn(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!re(e.url)){if(Wt(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function kr(e,t,r){let o=Ct(e,r),[n,i]=(0,Or.useAtom)(Ir(e.name)),l=n??o,[a]=Pr(l,t,e.disabled);return[a,i]}var w=require("react");function wr(e,t,r){let o=(0,w.useMemo)(()=>Ht(e),[e]),n=(0,w.useEffectEvent)(l=>{l&&t(l,o)}),i=(0,w.useEffectEvent)(l=>{l&&r(l)});return(0,w.useEffect)(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}var ge=require("react");function Dr(){let e=(0,ge.useRef)(null);(0,ge.useEffect)(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}var De=require("react/jsx-runtime");function Lr(e){let t=(0,W.useSetAtom)(hr(e.field.name)),[r,o]=(0,W.useAtom)(Er(e.field.name)),n=(0,W.useSetAtom)(N),[i]=wr(e.field,e.onMount,e.onUnmount),[l,a]=kr(e.field,e.config,r),{commonPropsWithOptions:s,defaultValue:d}=vt(e.field,e.commonProps,l,r),m=Pt(e.field,d),[I]=Dr();function G(p,f){if(Et(e.field)){I(()=>{f({value:p})},500);return}let x=mt(p,l,e.field.advanced?.entity);f(x)}function he(p){let f=p.target.value;o(f),e.config.validation.change&&X(f);let x=e.field.event?.change;x&&G(f,g=>{jt(x,({sources:To,values:bo})=>{(0,Vr.startTransition)(()=>{Jt(g,To,(Ae,Se)=>a(Ae,Se)),Qt(g,bo,(Ae,Se)=>{n(ho=>({...ho,[Ae]:Se}))})})})})}function Re(p){if(ht(e.field))return;let f=p.target.value;e.config.validation.blur&&X(f)}function X(p){let x=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(x)}return fr(e.config.inputs[e.field.type],p=>(0,De.jsx)(mr,{field:e.field,children:(0,De.jsx)(p,{...s,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:Re,onChange:he})}))}var Mr=require("tailwind-merge"),Ve=require("react/jsx-runtime");function _r(e){let t=_t(e.column?.advanced?.cols);return(0,Ve.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,Ve.jsx)("div",{className:(0,Mr.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var Le=require("react/jsx-runtime");function Br(e){return!e.errors||e.errors.length===0?null:(0,Le.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,Le.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Ur=require("tailwind-merge"),Gr=require("react/jsx-runtime");function ye(e){let t=e.errors&&e.errors.length>0;return(0,Gr.jsx)("div",{"data-slot":"field",...t&&{[nt]:"true"},...e.disabled&&{[it]:"true"},"data-orientation":e.orientation,className:(0,Ur.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",Bt(e.cols),e.className),children:e.children})}var Yr=require("react/jsx-runtime");function Xr(e){return(0,Yr.jsx)(ye,{...e,orientation:A,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}var qr=require("react/jsx-runtime");function Hr(e){return(0,qr.jsx)(ye,{...e,orientation:L,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}var Me=require("react/jsx-runtime");function $r(e){return e.orientation===A?(0,Me.jsx)(Xr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):(0,Me.jsx)(Hr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var xe=Pe();function Kr(e){if(y(e))return rn(e)}function rn(e){if(oe(e))return Ut();if(ne(e)){let t=e.advanced?.length?.min??xe,r=e.advanced?.length?.max??xe+5;return Gt(Oe(t,xe),Oe(r,xe))}}function Wr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ie(e)?{...r,...on(e)}:y(e)?{...r,...nn(e)}:Ce(e)?{...r,...ln(e)}:r}function on(e){let t=gt(e.type),r={...e,type:t};return{...Zr(e),...an(r),...Tt(r)?zr(r):{},type:t}}function nn(e){let t=Kr(e);return t?{options:t}:{}}function ln(e){return{...Zr(e),...zr(e)}}function Zr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function an(e){return ie(e)?cn(e):{}}function zr(e){return jr(e,{min:ct,max:ut})}function cn(e){return jr(e,{min:J,max:Q})}function jr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function Jr(e,t){let r=Dt(e.advanced?.aria);return t&&t.length>0&&(r[ot]="true",r[rt]=`${e.name}-error`),r}function Qr(e){return Vt(e.advanced?.data)}function eo(e){if(!e.field.type)return null;let t=Wr(e.field,e.disabled),r=Qr(e.field),o=Jr(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}var _=require("react/jsx-runtime");function to(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=le(e.field),n=Ft(e.field,e.disabled);return(0,_.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,_.jsx)($r,{cols:t,disabled:n,errors:r,orientation:o,children:(0,_.jsx)(eo,{disabled:n,errors:r,field:e.field,children:e.children})}),(0,_.jsx)(Br,{errors:r,name:e.field.name})]})}var ro=require("jotai"),no=require("react/jsx-runtime");function oo(e){return r=>{let o=(0,ro.useAtomValue)(K);return(0,no.jsx)(e,{...r,errors:o})}}var io=oo(to);var lo=require("react"),B=require("react/jsx-runtime");function _e(e){let t=ce(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>(0,B.jsxs)(lo.Fragment,{children:[Rt(n)&&(0,B.jsx)(r,{column:n,children:(0,B.jsx)(_e,{...e,fields:n.fields})}),At(n)&&(0,B.jsx)(o,{disabled:e.disabled,field:n,children:e.children})]},i))}var co=require("react/jsx-runtime"),ao=e=>(0,co.jsx)(_e,{...e,components:{column:_r,field:io}});var Be=require("jotai");var U=require("react");function mo(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},s=(0,Be.useSetAtom)(br),d=(0,Be.useSetAtom)(Ar),m={data:a,error:null,success:!1},[I,G,he]=(0,U.useActionState)(async(Re,X)=>{let p=Xt(e());if(l===!1)return t?await t(X,p):Re;let f=yt(X),x=p.safeParse(f);if(!x.success){let g=Yt(x.error);return(0,U.startTransition)(()=>{s(g)}),so(f,{detail:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||(0,U.startTransition)(()=>{d()})):g.error&&(0,U.startTransition)(()=>{o?.(g.error)}),uo(f,i)}catch(g){return so(f,{title:"An unexpected error occurred submitting the form.",detail:un(g)})}return uo(x.data,i)},m);return[G,I,he]}function un(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function uo(e,t=!1){return{data:t?e:null,error:null,success:!0}}function so(e,t){return{data:e,error:t,success:!1}}var yo=require("jotai/utils");var F=require("react");var fo=require("react"),Te=require("jotai");function po(){let e=(0,Te.useSetAtom)(Tr),t=(0,Te.useSetAtom)(Cr),r=(0,Te.useSetAtom)(Sr);return(0,fo.useCallback)(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function go(){let e=po(),t=(0,F.useRef)({}),r=(0,F.useRef)(new Set),o=(0,F.useCallback)((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=(0,F.useCallback)(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),(0,F.startTransition)(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}var be=require("react/jsx-runtime");function xo(e){let[t,r,o]=go(),[n,i]=mo(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return(0,yo.useHydrateAtoms)([[N,e.value??{}]]),(0,be.jsx)(ir,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>(0,be.jsx)(ao,{disabled:l,fields:a,children:s=>(0,be.jsx)(Lr,{...s,config:e.config,onMount:r,onUnmount:o,value:i.data})})})}
|
package/dist/client/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as Rt}from"react/jsx-runtime";function B(e){return Rt("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}import{jsx as Et}from"react/jsx-runtime";function g(e){return Et("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}import{Fragment as Ft,jsx as G,jsxs as It}from"react/jsx-runtime";function H(e){return It(Ft,{children:[G("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),G("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}import{jsx as N,jsxs as Nt}from"react/jsx-runtime";function W(e){return!e.title&&!e.description?N(g,{children:e.children}):Nt("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[N(H,{title:e.title,description:e.description}),N(g,{children:e.children})]})}import{Fragment as Pt}from"react";import{jsx as $}from"react/jsx-runtime";function z(){return $("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:$("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function x(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>Z(t)-Z(r)):[]}function Z(e){return e.order??Number.MAX_VALUE}function h(e){return Object.entries(e??{})}import{jsx as y,jsxs as K}from"react/jsx-runtime";function J(e){let t=x(e.sections);return y("div",{className:"h-full w-full",children:y("form",{noValidate:e.noValidate,action:e.action,children:K(g,{children:[t.map((r,n)=>K(Pt,{children:[y(W,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&y(z,{})]},n)),e.control&&y(B,{children:e.control})]})})})}import{jsx as Mt}from"react/jsx-runtime";function Q(e){return Mt("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as j}from"react/jsx-runtime";function A(e){return!e.errors||e.errors.length===0?null:j("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)=>j("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{atom as P}from"jotai";import{atomFamily as vt}from"jotai-family";var u=P({}),ee=vt(e=>P(t=>t(u)[e]??null,(t,r,n)=>{let o=t(u);if(n.length>0)o[e]?.every(l=>n.includes(l))||r(u,{...o,[e]:n});else if(o[e]){let{[e]:i,...l}=o;r(u,l)}})),te=P(null,(e,t,r)=>{let n=e(u);wt(n,r)&&t(u,r)});function wt(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!0;for(let o of n){let i=e[o],l=t[o];if(!i||i.length!==l.length)return!0;if(i.length>0){let c=new Set(i);if(!l.every(m=>c.has(m)))return!0}}return!1}import{useAtom as $t}from"jotai";import Lt from"swr";function f(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function T(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var M="input",re="input/email",ne="input/number",oe="textarea",v="column",ie="fields",le="radio",ae="value",ue="select",se="select/month",ce="select/year",w="email",me="number",de="password";var C="text",fe="aria-errormessage",pe="aria-invalid",ge="data-invalid",ye="aria",be="data";var xe="minLength",he="maxLength";function Ae(e,t=ae){if(e!=null){if(T(e))return e;if(f(e)){let r=Dt(e,t);if(T(r))return r}}}function Dt(e,t){let r=Ce(e,t);if(T(r))return r}function Te(e,t){if(Array.isArray(e))return e;let r=Ce(e,t);return Array.isArray(r)?r:null}function Ce(e,t){if(!t||!f(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(f(n)&&o in n)n=n[o];else return null;return n}function Se(e=null,t,r=!1){let{data:n}=Lt(_t(e,r),t.fetcher);if(e){if(Array.isArray(e))return[e];if(n)return[Te(n,e.namespace)]}return[null]}function _t(e=null,t=!1){return e&&!Array.isArray(e)&&!t?e:null}function S(e){return e.type===se}function R(e){return e.type===ce}function Re(e){return s(e)||D(e)}var Ee=L(M),D=L(le),s=L(ue);function Fe(e){return e.type===v&&ie in e}function Ie(e){return e.type!==v}function Ne(e){return e.type===oe}function Pe(e){return e.type===C||e.type===w||e.type===de||e.type==="tel"}function E(e){return e.type===ne||e.type===me}function Me(e){return e.type===re||e.type===w}function ve(e=C){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==M)return r.trim().toLowerCase()}}return C}function L(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}import{z as a}from"zod";var kt=[[E,Yt],[Me,Vt],[R,qt],[S,Xt]];function Le(e){return a.object(e)}function _e(e){let t={},r=a.flattenError(e).fieldErrors;for(let[n,o]of Object.entries(r))o!==void 0&&(t[n]=o);return t}function Oe(e){for(let[t,r]of kt)if(t(e))return r(e);return Ut(e)}function Vt(e){let t=a.email().trim();return e.required?t.min(1,e.validation?.required):t.or(a.literal("")).nullable()}function Ut(e){let t=a.coerce.string().trim();return t=ke(t,e),e.required?(t=Ve(t,e),a.preprocess(r=>r===null?"":r,t)):t.nullable()}function Yt(e){let t=a.coerce.number().int();return t=ke(t,e),e.required?(t=Ve(t,e),a.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function qt(e){if(e.required){let t=a.coerce.number({message:e.validation?.required}).int();return a.preprocess(Bt,t)}return a.coerce.number().int().nullable()}function Xt(e){let t=a.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function Bt(e){return e==null||e===""?void 0:e}function ke(e,t){return e=Gt(e,t),e=Ht(e,t),e}function Ve(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var Gt=(e,t)=>Ue(e,t,"min"),Ht=(e,t)=>Ue(e,t,"max");function Ue(e,t,r){let n=t.advanced?.length?.[r];return n!==void 0?e[r](n,t.validation?.length?.[r]):e}import{useEffect as Wt,useEffectEvent as Ye}from"react";function qe(e,t,r){let n=Oe(e),o=Ye(l=>{l&&t(l,n)}),i=Ye(l=>{l&&r(l)});return Wt(()=>(o(e.name),()=>{i(e.name)}),[e.name]),[n]}function Xe(e,t={}){if(s(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&f(r))return[r]}}function Be(e,t){if(t){let r=t[e.name];if(D(e)||s(e)&&!e.disabled)return r}}function Ge(e){let t=new FormData;for(let[r,n]of Object.entries(e))n!==null&&t.append(r,String(n));return t}function He(e,t,r){let n=Xe(e,t);return Be(e,r)??n}function We(e,t){return Ae(e.name?t?.[e.name]:void 0)}function $e(e,t,r){return Re(e)&&Array.isArray(r)?{...t,options:r}:t}import{Fragment as zt,jsx as _,jsxs as Zt}from"react/jsx-runtime";function ze(e){let t=We(e.field,e.value),r=He(e.field,e.value,e.source),[n,o]=$t(ee(e.field.name)),[i]=qe(e.field,e.onMount,e.onUnmount),[l]=Se(r,e.config,e.field.disabled),c=$e(e.field,e.commonProps,l);function d(p){let b=p.target.value;q(b)}function m(p){let b=p.target.value;q(b)}function q(p){let Ct=i.safeParse(p).error?.issues.map(St=>St.message)??[];o(Ct)}let X=e.config.inputs[e.field.type];return X?Zt(zt,{children:[_(X,{...e.ariaAttributes,...c,...e.dataAttributes,defaultValue:t,onBlur:m,onChange:d}),e.field.description&&_(Q,{children:e.field.description}),!e.withinColumn&&_(A,{name:e.field.name,errors:n})]}):null}var Ze={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Ke={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Je(e,t=2){return Ze[e&&e in Ze?e:t]}function Qe(e){if(e&&e in Ke)return Ke[e]}import{twMerge as Kt}from"tailwind-merge";import{jsx as je,jsxs as Jt}from"react/jsx-runtime";function et(e){let t=Je(e.column?.advanced?.cols),r=e.column?.fields??[],n=h(e.errors).filter(([o])=>r.find(i=>i.name===o)).flatMap(([,o])=>o??[]);return Jt("div",{className:"flex w-full flex-col gap-4",children:[je("div",{className:Kt("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),je(A,{errors:n})]})}import{useAtomValue as Qt}from"jotai";import{jsx as jt}from"react/jsx-runtime";function F(e){return r=>{let n=Qt(u);return jt(e,{...r,errors:n})}}var tt=F(et);function rt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function nt(e,t){return t>=e?Array.from({length:t-e+1},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function O(){return new Date().getFullYear()}function k(e,t){if(typeof e=="number")return e;let r=t??O(),n=e.trim().toLowerCase();if(n.startsWith("current")){let i=n.split("+");if(i.length===2){let l=parseInt(i[1],10);if(!isNaN(l))return r+l}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var I=O();function ot(e){if(s(e))return er(e)}function er(e){if(S(e))return rt();if(R(e)){let t=e.advanced?.length?.min??I,r=e.advanced?.length?.max??I+5;return nt(k(t,I),k(r,I))}}function it(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Ee(e)?{...r,...tr(e)}:s(e)?{...r,...rr(e)}:Ne(e)?{...r,...nr(e)}:r}function tr(e){let t=ve(e.type),r={...e,type:t};return{...lt(e),...or(r),...Pe(r)?at(r):{},type:t}}function rr(e){let t=ot(e);return t?{options:t}:{}}function nr(e){return{...lt(e),...at(e)}}function lt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function or(e){return E(e)?ir(e):{}}function at(e){return ut(e,{min:xe,max:he})}function ir(e){return ut(e,{min:"min",max:"max"})}function ut(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 st(e,t){let r={};for(let[n,o]of h(t))r[`${e}-${n}`]=o;return r}function ct(e){return st(ye,e)}function mt(e){return st(be,e)}function dt(e,t){let r=ct(e.advanced?.aria);return t&&t.length>0&&(r[pe]="true",r[fe]=`${e.name}-error`),r}function ft(e){return mt(e.advanced?.data)}function pt(e){if(!e.field.type)return null;let t=it(e.field,e.disabled),r=ft(e.field),n=dt(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}import{jsx as lr,jsxs as ar}from"react/jsx-runtime";function gt(e){return ar("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&lr("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{twMerge as ur}from"tailwind-merge";import{jsx as yt,jsxs as sr}from"react/jsx-runtime";function bt(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return sr("div",{...t&&{[ge]:"true"},"data-slot":"field",className:ur("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",Qe(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&yt(gt,{name:e.field.name,required:e.field.required,children:e.field.label}),yt(pt,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var xt=F(bt);import{Fragment as cr}from"react";import{jsx as V,jsxs as mr}from"react/jsx-runtime";function U(e){let t=x(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>mr(cr,{children:[Fe(o)&&V(r,{column:o,children:V(U,{...e,fields:o.fields,withinColumn:!0})}),Ie(o)&&V(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},i))}import{jsx as dr}from"react/jsx-runtime";var ht=e=>dr(U,{...e,components:{column:tt,field:xt}});import{startTransition as fr}from"react";import{useSetAtom as pr}from"jotai";function At(e,t){let r=pr(te);async function n(o){let i=e(),l=Le(i),c=Object.fromEntries(o),d=l.safeParse(c);if(!d.success){let m=_e(d.error);fr(()=>{r(m)});return}if(t){let m=Ge(d.data);await t(m)}}return[n]}import{useRef as gr}from"react";function Tt(){let e=gr({});function t(o,i){e.current[o]=i}function r(o){e.current[o]&&delete e.current[o]}function n(){return e.current}return[n,t,r]}import{jsx as Y}from"react/jsx-runtime";function yr(e){let[t,r,n]=Tt(),[o]=At(t,e.action);return Y(J,{action:o,control:e.children,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:i,fields:l})=>Y(ht,{disabled:i,fields:l,children:c=>Y(ze,{...c,config:e.config,onMount:r,onUnmount:n,source:e.source,value:e.value})})})}export{yr as Form};
|
|
1
|
+
import{jsx as Kr}from"react/jsx-runtime";function Ee(e){return Kr("div",{"data-slot":"field-control",className:"w-full",children:e.children})}import{jsx as Wr}from"react/jsx-runtime";function D(e){return Wr("div",{"data-slot":"field-group","data-compact":e.compact,className:"flex w-full flex-col gap-8 data-[compact=true]:gap-3",children:e.children})}var B="input",Ne="input/email",Fe="input/number";var Ie="textarea",Ce="radio",ve="checkbox",Pe="select",Oe="select/month",ke="select/year";var ce="column";var we="label",C="value",U="options",ue="email",De="number",Ve="password",Le="tel",V="text",Me="aria-errormessage",_e="aria-invalid",Be="data-invalid",Ue="data-readonly",Ge="aria",Xe="data",G="min",X="max",Ye="minLength",He="maxLength",v="$ref",qe="source";var Y="http://luna.internal",R="vertical",P="horizontal";function c(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function H(e){return e==null||e===""}function A(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function F(e){return typeof e=="string"}function $e(e){return c(e)&&"url"in e}var Zr=/[^/]+$/;function Ke(e,t=[],r=C){if(Array.isArray(t))return t.find(o=>{let n=se(o,r);if(n!==void 0&&`${n}`===e)return o})??{value:e}}function se(e,t=C){if(e!=null){if(A(e))return e;if(c(e)){let r=zr(e,t);if(A(r))return r}}}function zr(e,t){let r=S(e,t);if(A(r))return r}function We(e,t){if(Array.isArray(e))return e;let r=S(e,t);return Array.isArray(r)?r:null}function S(e,t){if(!t||!c(e))return null;let r=t.split(".").filter(n=>n!=="");if(r.length===0)return null;let o=e;for(let n of r)if(c(o)&&n in o)o=o[n];else return null;return o}function Ze(e,t={label:we,value:C}){return e.map(r=>{if(c(r)){let o=S(r,t.label),n=S(r,t.value);if(A(o)&&A(n))return{label:`${o}`,value:`${n}`}}return r})}function ze(e=V){if(e){let t=e.match(Zr);if(t){let[r]=t;if(r!==B)return r.trim().toLowerCase()}}return V}function je(e){let t={};for(let r of e.keys()){let o=e.getAll(r);t[r]=o.length>1?o:o[0]}return t}var jr=/\[([^\]]+)\]\(([^)]+)\)/g;function I(e,t={}){if(F(e))return Jr(e,t);if(Array.isArray(e))return e.map(r=>I(r,t));if(c(e)){let r={};for(let o in e)r[o]=I(e[o],t);return r}return e}function q(e){return F(e)?/{([^}]+)}/.test(e):Array.isArray(e)?e.some(t=>q(t)):c(e)?Object.values(e).some(t=>q(t)):!1}function Jr(e,t={}){return e.replace(/{([^}]+)}/g,(r,o)=>{let n=o.includes(".")?S(t,o):t[o];return A(n)?String(n):r})}function Je(e,t){if(!e||e.trim().length===0)return null;let r,o=0,n=!1,i=[];for(;(r=jr.exec(e))!==null;){let[l,a,s]=r,d=r.index;n=!0,d>o&&i.push(e.substring(o,d));let m=t?t(d,s,a):l;i.push(m),o=d+l.length}return n?(o<e.length&&i.push(e.substring(o)),i):e}var $=e=>T(Oe)(e),K=e=>T(ke)(e),b=T(ve),de=T(B),h=T(Ce),y=T(Pe),me=T(Ie),Qe=T(V,ue,Ve,Le),et=T(Ne,ue),W=T(Fe,De);function tt(e){return h(e)||b(e)}function rt(e){return e.type===ce}function ot(e){return e.type!==ce}function nt(e){return y(e)||h(e)}function it(e){return de(e)||me(e)}function fe(e){return e!=null&&e!==""}function T(...e){return t=>{let r=F(t.type)?t.type:void 0;return r?e.some(o=>r===o||r?.startsWith(`${o}/`)):!1}}function lt(e,t={}){if(y(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&c(r))return[r]}}function Z(e){return h(e)||b(e)?P:e.advanced?.orientation??R}function at(e,t){let r=e.readonly??!1;return t||r}function ct(e){if(h(e)||y(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||c(t)&&!(v in t))return t}}function ut(e,t){let r=ct(e);return r||lt(e,t)}function Qr(e,t){let r=c(t)&&e.name in t?t[e.name]:t;return se(r,e.advanced?.entity)}function eo(e,t,r){return nt(e)&&Array.isArray(r)?{...t,[U]:r}:t}function to(e,t,r){if(e.required&&!fe(r)&&y(e)&&e.advanced?.preselected!==!1&&U in t){let o=t[U];if(Array.isArray(o)&&o.length===1)return o[0]}return r}function ro(e,t){return y(e)&&Array.isArray(t)?Ze(t,e.advanced?.options):t}function st(e,t,r,o){let n=Qr(e,o),i=Array.isArray(r)?ro(e,r):r,l=eo(e,t,i),a=to(e,l,n);return{commonPropsWithOptions:l,defaultValue:a}}function dt(e,t){return b(e)?{checked:fe(t)}:{value:t??""}}var oo=/^#\/definition\//;function j(e=[],t){let r=z(e,t);return Array.isArray(r)?r.filter(o=>o.hidden!==!0).sort((o,n)=>mt(o)-mt(n)):[]}function z(e,t,r=new Map,o=new WeakSet){if(!no(t)||!e||typeof e!="object")return e;if(r.has(e))return r.get(e);if(o.has(e))return e;if(o.add(e),Array.isArray(e))return e.map(i=>z(i,t,r,o));if(v in e&&F(e[v])){let i=e[v].replace(oo,""),l=S(t,i);return l!==null?z(l,t,r,o):e}let n={};for(let[i,l]of Object.entries(e))n[i]=z(l,t,r,o);return o.delete(e),r.set(e,n),n}function ft(e){return Object.entries(e??{})}function mt(e){return e.order??Number.MAX_VALUE}function no(e){return e!==void 0&&c(e)&&Object.keys(e).length>0}function pt(e,t){let r={};for(let[o,n]of ft(t))r[`${e}-${o}`]=n;return r}function gt(e){return pt(Ge,e)}function yt(e){return pt(Xe,e)}var xt={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Tt={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function bt(e,t=2){return xt[e&&e in xt?e:t]}function ht(e){if(e&&e in Tt)return Tt[e]}var io=/^\d+$/;function Rt(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function At(e,t){return t>=e?Array.from({length:t-e+1},(r,o)=>{let n=e+o;return{value:n.toString(),label:n.toString()}}):[]}function pe(){return new Date().getFullYear()}function ge(e,t){if(typeof e=="number")return e;let r=t??pe(),o=e.trim().toLowerCase();if(o.startsWith("current")){let n=o.match(/^current([+-])(\d+)$/);if(n){let[,i,l]=n,a=parseInt(l,10);if(!isNaN(a))return i==="+"?r+a:r-a}return r}return io.test(o)?parseInt(o,10):r}import{z as u}from"zod";var lo=[[W,mo],[et,ao],[K,fo],[$,po],[b,co],[h,uo]];function St(e){return u.object(e)}function Et(e){let t={},r=u.flattenError(e).fieldErrors;for(let[o,n]of Object.entries(r))n!==void 0&&(t[o]=n);return t}function Nt(e){for(let[t,r]of lo)if(t(e))return r(e);return so(e)}function ao(e){let t=u.string().trim();if(e.required){let r=t.min(1,e.validation?.required).pipe(u.email(e.validation?.email));return u.preprocess(o=>H(o)?"":o,r)}return t.pipe(u.email(e.validation?.email)).or(u.literal("")).nullable()}function co(e){let t=u.coerce.boolean();return e.required?(t=t.refine(r=>r===!0,{message:e.validation?.required}),u.preprocess(r=>r===null?!1:r,t)):t.nullable()}function uo(e){let t=u.coerce.string();return e.required?(t=t.min(1,e.validation?.required),u.preprocess(r=>H(r)?"":r,t)):t.or(u.literal("")).nullable()}function so(e){let t=u.coerce.string().trim();return t=Ft(t,e),e.required?(t=It(t,e),u.preprocess(r=>H(r)?"":r,t)):t.nullable()}function mo(e){let t=u.coerce.number().int();return t=Ft(t,e),e.required?(t=It(t,e),u.preprocess(r=>r===null?void 0:r,t)):t.nullable()}function fo(e){if(e.required){let t=u.coerce.number({message:e.validation?.required}).int();return u.preprocess(go,t)}return u.coerce.number().int().nullable()}function po(e){let t=u.coerce.number().int().min(1,e.validation?.required).max(12,e.validation?.required);return e.required?t:t.nullable()}function go(e){return e===null||e===""?void 0:e}function Ft(e,t){return e=yo(e,t),e=xo(e,t),e}function It(e,t){let r=t.advanced?.length?.min;return r===void 0||r<1?e.min(1,t.validation?.required):e}var yo=(e,t)=>Ct(e,t,G),xo=(e,t)=>Ct(e,t,X);function Ct(e,t,r){let o=t.advanced?.length?.[r];return o!==void 0?e[r](o,t.validation?.length?.[r]):e}function vt(e,t){if(!t||!bo(e))return!0;if(t.length===0)return!1;try{let r=new URL(e),o=r.protocol.replace(":",""),n=r.hostname,i=r.port||To(o);return t.some(l=>!(l.protocol&&l.protocol!==o||l.hostname&&l.hostname!==n||l.port!==void 0&&String(l.port)!==i))}catch{return!1}}function To(e){return e==="https"?"443":"80"}function bo(e){return/^(https?:)?\/\//.test(e)}function Pt(e,t){try{if(!e)return t;if(!t)return e;let r=new URL(e,Y);new URL(t,Y).searchParams.forEach((i,l)=>{r.searchParams.set(l,i)});let n=r.toString();return e.startsWith("/")||!e.includes("://")?n.replace(Y,""):n}catch{return t||e}}function Ot(e){return!Array.isArray(e)||e.length===0?null:e.reduce((t,r)=>{let o=Pt(t.url,r.url),n=ho(t,r),i=Ro(t,r);return{...t,...r,url:o,body:n,headers:i}})}function ho(e,t){return c(t.body)&&c(e?.body)?{...e.body,...t.body}:t.body??e?.body}function Ro(e,t){return c(t.headers)&&c(e?.headers)?{...e.headers,...t.headers}:t.headers??e?.headers}function kt(e=[],t){let r=[],o=[];e.forEach(n=>{n.action===C&&r.push(n),n.action===qe&&o.push(n)}),t({sources:o,values:r})}function wt(e=null,t=[],r){t.forEach(o=>{let{target:n,source:i}=o;if(!e){r(n,void 0);return}if($e(i)){let l=I(i.url,e),a=i.body?I(i.body,e):i.body;r(n,{...i,url:l,body:a})}})}function Dt(e=null,t=[],r){t.forEach(o=>{Object.entries(o.value).forEach(([n,i])=>{r(n,e?I(i,e):void 0)})})}import{jsx as Ao}from"react/jsx-runtime";function L(e){return Je(e,(t,r,o)=>Ao("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:o},`${r}-${t}`))}import{Fragment as So,jsx as Vt,jsxs as Eo}from"react/jsx-runtime";function Lt(e){return Eo(So,{children:[Vt("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:L(e.title)}),Vt("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:L(e.description)})]})}import{jsx as ye,jsxs as No}from"react/jsx-runtime";function Mt(e){if(!e.section.title&&!e.section.description)return ye(D,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return No("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[ye(Lt,{description:e.section.description,title:e.section.title}),ye(D,{compact:e.section.compact,children:e.children})]})}import{Fragment as Fo}from"react";import{jsx as _t}from"react/jsx-runtime";function Bt(){return _t("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:_t("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}import{jsx as M,jsxs as Ut}from"react/jsx-runtime";function Gt(e){let t=j(e.sections,e.definition);return M("div",{className:"h-full w-full",children:M("form",{noValidate:e.noValidate,action:e.action,children:Ut(D,{children:[t.map((r,o)=>Ut(Fo,{children:[M(Mt,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&M(Bt,{})]},o)),e.control&&M(Ee,{children:e.control})]})})})}import{jsx as Io}from"react/jsx-runtime";function Xt(e){return Io("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as Co}from"react/jsx-runtime";function J(e){let t=L(e.text);return t?Co(Xt,{children:t}):null}import{twMerge as vo}from"tailwind-merge";import{jsx as Po,jsxs as Oo}from"react/jsx-runtime";function Yt(e){let t=h(e.field)||b(e.field);return Oo("label",{"data-slot":"field-label","data-normal":t,className:vo("flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none","data-[normal=true]:font-normal","group-data-[readonly=true]:cursor-not-allowed group-data-[readonly=true]:opacity-50"),htmlFor:e.field.name,children:[e.children,!e.field.required&&Po("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as Ht,jsxs as ko}from"react/jsx-runtime";function qt(e){return ko("div",{"data-slot":"field-content",className:"flex flex-1 flex-col gap-1.5 leading-snug",children:[Ht(Yt,{field:e.field,children:e.field.label}),e.orientation===P&&Ht(J,{text:e.field.description})]})}import{Fragment as wo,jsx as $t,jsxs as Do}from"react/jsx-runtime";function Kt(e){let t=Z(e.field);return Do(wo,{children:[e.field.name&&e.field.label&&$t(qt,{field:e.field,orientation:t}),e.children,t===R&&e.field.description&&$t(J,{text:e.field.description})]})}function Wt(e,t){return e?t(e):null}import{atom as Vo}from"jotai";import{atom as O}from"jotai";import{atomFamily as Zt}from"jotai-family";import{deepEqual as xe}from"fast-equals";function Q(e){return Zt(t=>O(r=>r(e)[t]??void 0,(r,o,n)=>{let i=r(e);if(n!=null){let l=i[t];(!l||!xe(l,n))&&o(e,{...i,[t]:n})}else if(i[t]){let{[t]:l,...a}=i;o(e,a)}}))}function zt(e){return O(null,(t,r)=>{let o=t(e);o&&Object.keys(o).length>0&&r(e,{})})}function ee(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);l&&r(e,i)})}function te(e){return O(null,(t,r,o)=>{let n=t(e);xe(n,o)||r(e,o)})}function jt(e,t={}){let{merge:r,validateTarget:o}=t;return Zt(n=>O(i=>{let l=i(e)[n];if(l&&r)return r(Object.values(l))},(i,l,a,s)=>{if(o&&!o(a))return;let d=i(e),m={...d[a]??{}};if(s!=null){let N=m[n];(!N||!xe(N,s))&&(m[n]=s,l(e,{...d,[a]:m}))}else if(m[n])if(delete m[n],Object.keys(m).length===0){let{[a]:N,...k}=d;l(e,k)}else l(e,{...d,[a]:m})}))}function Jt(e){return O(null,(t,r,o)=>{let i={...t(e)},l=!1;for(let a of o)i[a]&&(delete i[a],l=!0);for(let a in i){let s={...i[a]},d=!1;for(let m of o)s[m]&&(delete s[m],d=!0,l=!0);d&&(Object.keys(s).length===0?delete i[a]:i[a]=s)}l&&r(e,i)})}var _=Vo({}),Qt=ee(_),er=te(_),tr=Q(_);import{atom as Lo}from"jotai";var E=Lo({}),rr=zt(E),or=ee(E),sl=te(E),nr=Q(E);import{startTransition as qo}from"react";import{useAtom as $o,useSetAtom as fr}from"jotai";import{atom as Mo}from"jotai";var ir=Mo({}),lr=jt(ir,{merge:e=>{let t=Ot(e);if(t)return t},validateTarget:e=>e.trim()!==""}),ar=Jt(ir);import{useAtom as Uo}from"jotai";import _o from"swr";function cr(e=null,t,r=!1){let{data:o,error:n}=_o(Bo(e,t,r),t.fetcher.provider);if(n&&console.error("Error fetching data source:",n),e){if(Array.isArray(e))return[e];if(o)return[We(o,e.namespace)]}return[null]}function Bo(e=null,t,r=!1){if(e&&!Array.isArray(e)&&!r&&e.url&&!q(e.url)){if(vt(e.url,t.fetcher.remotePatterns))return e;console.warn(`URL blocked by remotePatterns: ${e.url}. Check your luna.config.ts`)}return null}function ur(e,t,r){let o=ut(e,r),[n,i]=Uo(lr(e.name)),l=n??o,[a]=cr(l,t,e.disabled);return[a,i]}import{useEffect as Go,useEffectEvent as sr,useMemo as Xo}from"react";function dr(e,t,r){let o=Xo(()=>Nt(e),[e]),n=sr(l=>{l&&t(l,o)}),i=sr(l=>{l&&r(l)});return Go(()=>(n(e.name),()=>{i(e.name)}),[e.name]),[o]}import{useEffect as Yo,useRef as Ho}from"react";function mr(){let e=Ho(null);Yo(()=>{let o=e.current;return()=>{o&&clearTimeout(o)}},[]);function t(){e.current&&(clearTimeout(e.current),e.current=null)}function r(o,n){t(),e.current=setTimeout(o,n)}return[r,t]}import{jsx as pr}from"react/jsx-runtime";function gr(e){let t=fr(tr(e.field.name)),[r,o]=$o(nr(e.field.name)),n=fr(E),[i]=dr(e.field,e.onMount,e.onUnmount),[l,a]=ur(e.field,e.config,r),{commonPropsWithOptions:s,defaultValue:d}=st(e.field,e.commonProps,l,r),m=dt(e.field,d),[N]=mr();function k(p,f){if(it(e.field)){N(()=>{f({value:p})},500);return}let x=Ke(p,l,e.field.advanced?.entity);f(x)}function ne(p){let f=p.target.value;o(f),e.config.validation.change&&w(f);let x=e.field.event?.change;x&&k(f,g=>{kt(x,({sources:Hr,values:qr})=>{qo(()=>{wt(g,Hr,(le,ae)=>a(le,ae)),Dt(g,qr,(le,ae)=>{n($r=>({...$r,[le]:ae}))})})})})}function ie(p){if(tt(e.field))return;let f=p.target.value;e.config.validation.blur&&w(f)}function w(p){let x=i.safeParse(p).error?.issues.map(g=>g.message)??[];t(x)}return Wt(e.config.inputs[e.field.type],p=>pr(Kt,{field:e.field,children:pr(p,{...s,...e.ariaAttributes,...e.dataAttributes,...m,onBlur:ie,onChange:ne})}))}import{twMerge as Ko}from"tailwind-merge";import{jsx as yr}from"react/jsx-runtime";function xr(e){let t=bt(e.column?.advanced?.cols);return yr("div",{className:"flex w-full flex-col gap-4",children:yr("div",{className:Ko("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{jsx as Tr}from"react/jsx-runtime";function br(e){return!e.errors||e.errors.length===0?null:Tr("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>Tr("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{twMerge as Wo}from"tailwind-merge";import{jsx as Zo}from"react/jsx-runtime";function re(e){let t=e.errors&&e.errors.length>0;return Zo("div",{"data-slot":"field",...t&&{[Be]:"true"},...e.disabled&&{[Ue]:"true"},"data-orientation":e.orientation,className:Wo("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",ht(e.cols),e.className),children:e.children})}import{jsx as zo}from"react/jsx-runtime";function hr(e){return zo(re,{...e,orientation:R,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}import{jsx as jo}from"react/jsx-runtime";function Rr(e){return jo(re,{...e,orientation:P,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}import{jsx as Ar}from"react/jsx-runtime";function Sr(e){return e.orientation===R?Ar(hr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):Ar(Rr,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var oe=pe();function Er(e){if(y(e))return Jo(e)}function Jo(e){if($(e))return Rt();if(K(e)){let t=e.advanced?.length?.min??oe,r=e.advanced?.length?.max??oe+5;return At(ge(t,oe),ge(r,oe))}}function Nr(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return de(e)?{...r,...Qo(e)}:y(e)?{...r,...en(e)}:me(e)?{...r,...tn(e)}:r}function Qo(e){let t=ze(e.type),r={...e,type:t};return{...Fr(e),...rn(r),...Qe(r)?Ir(r):{},type:t}}function en(e){let t=Er(e);return t?{options:t}:{}}function tn(e){return{...Fr(e),...Ir(e)}}function Fr(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function rn(e){return W(e)?on(e):{}}function Ir(e){return Cr(e,{min:Ye,max:He})}function on(e){return Cr(e,{min:G,max:X})}function Cr(e,t){let r={},o=e.advanced?.length;return o&&(o.min!==void 0&&(r[t.min]=o.min),o.max!==void 0&&(r[t.max]=o.max)),r}function vr(e,t){let r=gt(e.advanced?.aria);return t&&t.length>0&&(r[_e]="true",r[Me]=`${e.name}-error`),r}function Pr(e){return yt(e.advanced?.data)}function Or(e){if(!e.field.type)return null;let t=Nr(e.field,e.disabled),r=Pr(e.field),o=vr(e.field,e.errors),n={...e.field,disabled:t.disabled};return e.children({ariaAttributes:o,commonProps:t,dataAttributes:r,field:n})}import{jsx as Te,jsxs as nn}from"react/jsx-runtime";function kr(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,o=Z(e.field),n=at(e.field,e.disabled);return nn("div",{className:"flex flex-col gap-3",children:[Te(Sr,{cols:t,disabled:n,errors:r,orientation:o,children:Te(Or,{disabled:n,errors:r,field:e.field,children:e.children})}),Te(br,{errors:r,name:e.field.name})]})}import{useAtomValue as ln}from"jotai";import{jsx as an}from"react/jsx-runtime";function wr(e){return r=>{let o=ln(_);return an(e,{...r,errors:o})}}var Dr=wr(kr);import{Fragment as cn}from"react";import{jsx as be,jsxs as un}from"react/jsx-runtime";function he(e){let t=j(e.fields),{column:r,field:o}=e.components;return t.map((n,i)=>un(cn,{children:[rt(n)&&be(r,{column:n,children:be(he,{...e,fields:n.fields})}),ot(n)&&be(o,{disabled:e.disabled,field:n,children:e.children})]},i))}import{jsx as sn}from"react/jsx-runtime";var Vr=e=>sn(he,{...e,components:{column:xr,field:Dr}});import{useSetAtom as Lr}from"jotai";import{startTransition as Re,useActionState as dn}from"react";function Br(e,t,r){let{onError:o,onSuccess:n,preserveValues:i=!1,validation:l=!0,value:a=null}=r??{},s=Lr(er),d=Lr(rr),m={data:a,error:null,success:!1},[N,k,ne]=dn(async(ie,w)=>{let p=St(e());if(l===!1)return t?await t(w,p):ie;let f=je(w),x=p.safeParse(f);if(!x.success){let g=Et(x.error);return Re(()=>{s(g)}),_r(f,{detail:g,title:"There were validation errors submitting the form."})}if(t)try{let g=await t(f,p);return g.success?(n?.(g.data),i||Re(()=>{d()})):g.error&&Re(()=>{o?.(g.error)}),Mr(f,i)}catch(g){return _r(f,{title:"An unexpected error occurred submitting the form.",detail:mn(g)})}return Mr(x.data,i)},m);return[k,N,ne]}function mn(e){let t=e instanceof Error?e.message:["Unknown error"];return Array.isArray(t)?t:[t]}function Mr(e,t=!1){return{data:t?e:null,error:null,success:!0}}function _r(e,t){return{data:e,error:t,success:!1}}import{useHydrateAtoms as gn}from"jotai/utils";import{startTransition as pn,useCallback as Gr,useRef as Xr}from"react";import{useCallback as fn}from"react";import{useSetAtom as Ae}from"jotai";function Ur(){let e=Ae(Qt),t=Ae(ar),r=Ae(or);return fn(o=>{let n=Array.isArray(o)?o:[o];e(n),t(n),r(n)},[e,t,r])}function Yr(){let e=Ur(),t=Xr({}),r=Xr(new Set),o=Gr((l,a)=>{l in t.current||(t.current[l]=a)},[]),n=Gr(l=>{t.current[l]&&(delete t.current[l],r.current.add(l),pn(()=>{r.current.size>0&&(e(Array.from(r.current)),r.current.clear())}))},[e]);function i(){return t.current}return[i,o,n]}import{jsx as Se}from"react/jsx-runtime";function yn(e){let[t,r,o]=Yr(),[n,i]=Br(t,e.action,{onError:e.onError,onSuccess:e.onSuccess,validation:e.config.validation.submit,value:e.value});return gn([[E,e.value??{}]]),Se(Gt,{action:n,config:e.config,control:e.children,definition:e.definition,noValidate:!0,readOnly:e.readOnly,sections:e.sections,children:({disabled:l,fields:a})=>Se(Vr,{disabled:l,fields:a,children:s=>Se(gr,{...s,config:e.config,onMount:r,onUnmount:o,value:i.data})})})}export{yn as Form};
|
package/dist/config/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var L=(t,n)=>{for(var r in n)a(t,r,{get:n[r],enumerable:!0})},O=(t,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of b(n))!S.call(t,e)&&e!==r&&a(t,e,{get:()=>n[e],enumerable:!(o=R(n,e))||o.enumerable});return t};var C=t=>O(a({},"__esModule",{value:!0}),t);var Z={};L(Z,{defineCheckbox:()=>F,defineConfig:()=>Y,defineCustomInput:()=>z,defineInput:()=>$,defineRadio:()=>W,defineSelect:()=>q,defineTextArea:()=>J});module.exports=C(Z);var N="input",_="input/email",P="input/number",D="input/password",M="input/tel",w="input/text",T=[N,_,P,D,M,w],E="textarea",g="radio",m="checkbox",U="select",k="select/month",X="select/year",h=[U,k,X];var u="http://luna.internal";function A(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function i(t){return typeof t=="string"}function p(t){return i(t)?/{([^}]+)}/.test(t):Array.isArray(t)?t.some(n=>p(n)):A(t)?Object.values(t).some(n=>p(n)):!1}function y(t){try{return t instanceof FormData?null:i(t)?t:JSON.stringify(t)}catch{return null}}var j=/(^|[\/?=&])(null|undefined)([\/?=&]|$)/;async function I(t){let[n,r]=V(t),o=t.body,e=B(t);if(o&&!f(r)){let d=y(o);d!==null&&(o=d,e=v(e))}let s=n.origin===u?n.toString().replace(u,""):n.toString(),l=await fetch(s,{body:K(r,o),cache:t.cache,headers:e,method:r}),x=await l.json();if(l.ok)return x;throw x}function V(t){let n=t.url?.trim();if(!n||!G(n))throw new Error(`Invalid URL: ${t.url}`);let r=new URL(n,u),o=H(t);return t.body&&f(o)&&Object.entries(t.body).filter(([,e])=>e!==void 0&&e!=="undefined").forEach(([e,s])=>{r.searchParams.append(e,String(s))}),[r,o]}function v(t){return{...t,"Content-Type":"application/json"}}function G(t){return!i(t)||p(t)?!1:!j.test(t)}function H(t){return t.method??"GET"}function B(t){return{Accept:"application/json",...t.headers??{}}}function f(t){return t.toUpperCase()==="GET"}function K(t,n){if(!f(t))return n}function Y(t){let n={env:t.env,fetcher:{provider:I,remotePatterns:t.fetcher?.remotePatterns},inputs:{},style:t.style};return n.validation=t.validation??{blur:!0,change:!0,submit:!0},t.inputs.forEach(({types:r,input:o})=>{(Array.isArray(r)?r:[r]).forEach(s=>{n.inputs[s]=o})}),n}function c(t){return n=>({types:t,input:n})}var F=c([m]),$=c(T),W=c([g]),q=c(h),J=c([E]);function z(t,n){return{types:t,input:n}}
|
package/dist/config/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
var I="input",R="input/email",b="input/number",S="input/password",L="input/tel",O="input/text",d=[I,R,b,S,L,O],T="textarea",E="radio",g="checkbox",C="select",N="select/month",_="select/year",m=[C,N,_];var u="http://luna.internal";function h(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function i(t){return typeof t=="string"}function p(t){return i(t)?/{([^}]+)}/.test(t):Array.isArray(t)?t.some(n=>p(n)):h(t)?Object.values(t).some(n=>p(n)):!1}function A(t){try{return t instanceof FormData?null:i(t)?t:JSON.stringify(t)}catch{return null}}var P=/(^|[\/?=&])(null|undefined)([\/?=&]|$)/;async function y(t){let[n,r]=D(t),e=t.body,o=k(t);if(e&&!a(r)){let x=A(e);x!==null&&(e=x,o=M(o))}let s=n.origin===u?n.toString().replace(u,""):n.toString(),f=await fetch(s,{body:X(r,e),cache:t.cache,headers:o,method:r}),l=await f.json();if(f.ok)return l;throw l}function D(t){let n=t.url?.trim();if(!n||!w(n))throw new Error(`Invalid URL: ${t.url}`);let r=new URL(n,u),e=U(t);return t.body&&a(e)&&Object.entries(t.body).filter(([,o])=>o!==void 0&&o!=="undefined").forEach(([o,s])=>{r.searchParams.append(o,String(s))}),[r,e]}function M(t){return{...t,"Content-Type":"application/json"}}function w(t){return!i(t)||p(t)?!1:!P.test(t)}function U(t){return t.method??"GET"}function k(t){return{Accept:"application/json",...t.headers??{}}}function a(t){return t.toUpperCase()==="GET"}function X(t,n){if(!a(t))return n}function z(t){let n={env:t.env,fetcher:{provider:y,remotePatterns:t.fetcher?.remotePatterns},inputs:{},style:t.style};return n.validation=t.validation??{blur:!0,change:!0,submit:!0},t.inputs.forEach(({types:r,input:e})=>{(Array.isArray(r)?r:[r]).forEach(s=>{n.inputs[s]=e})}),n}function c(t){return n=>({types:t,input:n})}var Z=c([g]),Q=c(d),tt=c([E]),nt=c(m),rt=c([T]);function et(t,n){return{types:t,input:n}}export{Z as defineCheckbox,z as defineConfig,et as defineCustomInput,Q as defineInput,tt as defineRadio,nt as defineSelect,rt as defineTextArea};
|
package/dist/server/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var S=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var nt=Object.getOwnPropertyNames;var ot=Object.prototype.hasOwnProperty;var it=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0})},lt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of nt(t))!ot.call(e,o)&&o!==r&&S(e,o,{get:()=>t[o],enumerable:!(n=rt(t,o))||n.enumerable});return e};var at=e=>lt(S({},"__esModule",{value:!0}),e);var At={};it(At,{Fallback:()=>tt,Form:()=>F});module.exports=at(At);var k=require("react/jsx-runtime");function v(e){return(0,k.jsx)("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}var V=require("react/jsx-runtime");function f(e){return(0,V.jsx)("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}var u=require("react/jsx-runtime");function Y(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),(0,u.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}var d=require("react/jsx-runtime");function U(e){return!e.title&&!e.description?(0,d.jsx)(f,{children:e.children}):(0,d.jsxs)("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[(0,d.jsx)(Y,{title:e.title,description:e.description}),(0,d.jsx)(f,{children:e.children})]})}var B=require("react");var h=require("react/jsx-runtime");function X(){return(0,h.jsx)("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:(0,h.jsx)("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function y(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>G(t)-G(r)):[]}function G(e){return e.order??Number.MAX_VALUE}function b(e){return Object.entries(e??{})}var i=require("react/jsx-runtime");function H(e){let t=y(e.sections);return(0,i.jsx)("div",{className:"h-full w-full",children:(0,i.jsx)("form",{noValidate:e.noValidate,action:e.action,children:(0,i.jsxs)(f,{children:[t.map((r,n)=>(0,i.jsxs)(B.Fragment,{children:[(0,i.jsx)(U,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,i.jsx)(X,{})]},n)),e.control&&(0,i.jsx)(v,{children:e.control})]})})})}var q=require("react/jsx-runtime");function $(e){return(0,q.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function x(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var N="input";var W="input/number",z="textarea",E="column",J="fields",K="radio",Q="value",Z="select",j="select/month",ee="select/year",te="email",re="number",ne="password";var A="text",oe="aria-errormessage",ie="aria-invalid",le="data-invalid",ae="aria",ue="data";var se="minLength",de="maxLength";function ce(e){return e.type===j}function me(e){return e.type===ee}function fe(e){return l(e)||I(e)}var pe=P(N),I=P(K),l=P(Z);function ge(e){return e.type===E&&J in e}function ye(e){return e.type!==E}function be(e){return e.type===z}function xe(e){return e.type===A||e.type===te||e.type===ne||e.type==="tel"}function Ae(e){return e.type===W||e.type===re}function Re(e=A){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==N)return r.trim().toLowerCase()}}return A}function P(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}function Ce(e,t={}){if(l(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&c(r))return[r]}}function Te(e,t){if(t){let r=t[e.name];if(I(e)||l(e)&&!e.disabled)return r}}function Fe(e,t=Q){if(e!=null){if(x(e))return e;if(c(e)){let r=st(e,t);if(x(r))return r}}}function st(e,t){let r=dt(e,t);if(x(r))return r}function dt(e,t){if(!t||!c(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(c(n)&&o in n)n=n[o];else return null;return n}function Se(e,t,r){let n=Ce(e,t);return Te(e,r)??n}function he(e,t){return Fe(e.name?t?.[e.name]:void 0)}function Ne(e,t,r){return fe(e)&&Array.isArray(r)?{...t,options:r}:t}var s=require("react/jsx-runtime");function Ee(e){let t=he(e.field,e.value),r=Se(e.field,e.value,e.source),n=Ne(e.field,e.commonProps,r),o=e.config.inputs[e.field.type];return o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o,{...e.ariaAttributes,...n,...e.dataAttributes,defaultValue:t}),e.field.description&&(0,s.jsx)($,{children:e.field.description})]}):null}var Ie=require("react");var m=require("react/jsx-runtime");function L(e){let t=y(e.fields),{column:r,field:n}=e.components;return t.map((o,a)=>(0,m.jsxs)(Ie.Fragment,{children:[ge(o)&&(0,m.jsx)(r,{column:o,children:(0,m.jsx)(L,{...e,fields:o.fields,withinColumn:!0})}),ye(o)&&(0,m.jsx)(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},a))}var _=require("react/jsx-runtime");function Pe(e){return!e.errors||e.errors.length===0?null:(0,_.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,_.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Le={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},_e={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function we(e,t=2){return Le[e&&e in Le?e:t]}function Me(e){if(e&&e in _e)return _e[e]}var De=require("tailwind-merge"),p=require("react/jsx-runtime");function Oe(e){let t=we(e.column?.advanced?.cols),r=e.column?.fields??[],n=b(e.errors).filter(([o])=>r.find(a=>a.name===o)).flatMap(([,o])=>o??[]);return(0,p.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,p.jsx)("div",{className:(0,De.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),(0,p.jsx)(Pe,{errors:n})]})}function ve(){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},(r,n)=>{let o=e+n;return{value:o.toString(),label:o.toString()}}):[]}function w(){return new Date().getFullYear()}function M(e,t){if(typeof e=="number")return e;let r=t??w(),n=e.trim().toLowerCase();if(n.startsWith("current")){let a=n.split("+");if(a.length===2){let O=parseInt(a[1],10);if(!isNaN(O))return r+O}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var R=w();function Ve(e){if(l(e))return ct(e)}function ct(e){if(ce(e))return ve();if(me(e)){let t=e.advanced?.length?.min??R,r=e.advanced?.length?.max??R+5;return ke(M(t,R),M(r,R))}}function Ye(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return pe(e)?{...r,...pt(e)}:l(e)?{...r,...gt(e)}:be(e)?{...r,...yt(e)}:r}function pt(e){let t=Re(e.type),r={...e,type:t};return{...Ue(e),...bt(r),...xe(r)?Xe(r):{},type:t}}function gt(e){let t=Ve(e);return t?{options:t}:{}}function yt(e){return{...Ue(e),...Xe(e)}}function Ue(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function bt(e){return Ae(e)?xt(e):{}}function Xe(e){return Ge(e,{min:se,max:de})}function xt(e){return Ge(e,{min:"min",max:"max"})}function Ge(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 Be(e,t){let r={};for(let[n,o]of b(t))r[`${e}-${n}`]=o;return r}function He(e){return Be(ae,e)}function $e(e){return Be(ue,e)}function qe(e,t){let r=He(e.advanced?.aria);return t&&t.length>0&&(r[ie]="true",r[oe]=`${e.name}-error`),r}function We(e){return $e(e.advanced?.data)}function ze(e){if(!e.field.type)return null;let t=Ye(e.field,e.disabled),r=We(e.field),n=qe(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}var C=require("react/jsx-runtime");function Je(e){return(0,C.jsxs)("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&&(0,C.jsx)("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}var Ke=require("tailwind-merge"),g=require("react/jsx-runtime");function Qe(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return(0,g.jsxs)("div",{...t&&{[le]:"true"},"data-slot":"field",className:(0,Ke.twMerge)("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",Me(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&(0,g.jsx)(Je,{name:e.field.name,required:e.field.required,children:e.field.label}),(0,g.jsx)(ze,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}var je=require("react/jsx-runtime"),Ze=e=>(0,je.jsx)(L,{...e,components:{column:Oe,field:Qe}});var T=require("react/jsx-runtime");function F(e){return(0,T.jsx)(H,{control:e.children,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>(0,T.jsx)(Ze,{disabled:t,fields:r,children:n=>(0,T.jsx)(Ee,{...n,config:e.config,source:e.source,value:e.value})})})}var et=require("react");var D=require("react/jsx-runtime");function tt(e){return(0,D.jsx)(et.Suspense,{fallback:(0,D.jsx)(F,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}
|
|
1
|
+
"use strict";var Y=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Ht=Object.prototype.hasOwnProperty;var Kt=(e,t)=>{for(var r in t)Y(e,r,{get:t[r],enumerable:!0})},Wt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $t(t))!Ht.call(e,o)&&o!==r&&Y(e,o,{get:()=>t[o],enumerable:!(n=Ut(t,o))||n.enumerable});return e};var qt=e=>Wt(Y({},"__esModule",{value:!0}),e);var dr={};Kt(dr,{Fallback:()=>Bt,Form:()=>X});module.exports=qt(dr);var re=require("react/jsx-runtime");function te(e){return(0,re.jsx)("div",{"data-slot":"field-control",className:"w-full",children:e.children})}var ne=require("react/jsx-runtime");function F(e){return(0,ne.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 k="input",oe="input/email",ie="input/number";var le="textarea",ae="radio",ce="checkbox",se="select",ue="select/month",de="select/year";var U="column";var fe="label",$="value",L="options",H="email",me="number",pe="password",ge="tel",E="text",xe="aria-errormessage",be="aria-invalid",ye="data-invalid",Re="data-readonly",Te="aria",Ae="data",he="min",Ne="max",Fe="minLength",Ee="maxLength",g="$ref";var d="vertical",x="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 D(e){return typeof e=="string"}var zt=/[^/]+$/;function Ce(e,t=$){if(e!=null){if(b(e))return e;if(a(e)){let r=Zt(e,t);if(b(r))return r}}}function Zt(e,t){let r=C(e,t);if(b(r))return r}function C(e,t){if(!t||!a(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(a(n)&&o in n)n=n[o];else return null;return n}function Ie(e,t={label:fe,value:$}){return e.map(r=>{if(a(r)){let n=C(r,t.label),o=C(r,t.value);if(b(n)&&b(o))return{label:`${n}`,value:`${o}`}}return r})}function Se(e=E){if(e){let t=e.match(zt);if(t){let[r]=t;if(r!==k)return r.trim().toLowerCase()}}return E}var Jt=/\[([^\]]+)\]\(([^)]+)\)/g;function Oe(e,t){if(!e||e.trim().length===0)return null;let r,n=0,o=!1,i=[];for(;(r=Jt.exec(e))!==null;){let[l,f,Xt]=r,P=r.index;o=!0,P>n&&i.push(e.substring(n,P));let Yt=t?t(P,Xt,f):l;i.push(Yt),n=P+l.length}return o?(n<e.length&&i.push(e.substring(n)),i):e}var Pe=e=>s(ue)(e),ke=e=>s(de)(e),y=s(ce),Le=s(k),R=s(ae),c=s(se),De=s(le),we=s(E,H,pe,ge),Nr=s(oe,H),_e=s(ie,me);function Me(e){return e.type===U}function Ve(e){return e.type!==U}function ve(e){return c(e)||R(e)}function K(e){return e!=null&&e!==""}function s(...e){return t=>{let r=D(t.type)?t.type:void 0;return r?e.some(n=>r===n||r?.startsWith(`${n}/`)):!1}}function Ge(e,t={}){if(c(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&a(r))return[r]}}function w(e){return R(e)||y(e)?x:e.advanced?.orientation??d}function Be(e,t){let r=e.readonly??!1;return t||r}function Xe(e){if(R(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||a(t)&&!(g in t))return t}}function Ye(e,t){let r=Xe(e);return r||Ge(e,t)}function Qt(e,t){let r=a(t)&&e.name in t?t[e.name]:t;return Ce(r,e.advanced?.entity)}function jt(e,t,r){return ve(e)&&Array.isArray(r)?{...t,[L]:r}:t}function er(e,t,r){if(e.required&&!K(r)&&c(e)&&e.advanced?.preselected!==!1&&L in t){let n=t[L];if(Array.isArray(n)&&n.length===1)return n[0]}return r}function tr(e,t){return c(e)&&Array.isArray(t)?Ie(t,e.advanced?.options):t}function Ue(e,t,r,n){let o=Qt(e,n),i=Array.isArray(r)?tr(e,r):r,l=jt(e,t,i),f=er(e,l,o);return{commonPropsWithOptions:l,defaultValue:f}}function $e(e,t){return y(e)?{defaultChecked:K(t)}:{defaultValue:t}}var rr=/^#\/definition\//;function M(e=[],t){let r=_(e,t);return Array.isArray(r)?r.filter(n=>n.hidden!==!0).sort((n,o)=>He(n)-He(o)):[]}function _(e,t,r=new Map,n=new WeakSet){if(!nr(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=>_(i,t,r,n));if(g in e&&D(e[g])){let i=e[g].replace(rr,""),l=C(t,i);return l!==null?_(l,t,r,n):e}let o={};for(let[i,l]of Object.entries(e))o[i]=_(l,t,r,n);return n.delete(e),r.set(e,o),o}function Ke(e){return Object.entries(e??{})}function He(e){return e.order??Number.MAX_VALUE}function nr(e){return e!==void 0&&a(e)&&Object.keys(e).length>0}function We(e,t){let r={};for(let[n,o]of Ke(t))r[`${e}-${n}`]=o;return r}function qe(e){return We(Te,e)}function ze(e){return We(Ae,e)}var Ze={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 Qe(e,t=2){return Ze[e&&e in Ze?e:t]}function je(e){if(e&&e in Je)return Je[e]}var or=/^\d+$/;function et(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function tt(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 W(){return new Date().getFullYear()}function q(e,t){if(typeof e=="number")return e;let r=t??W(),n=e.trim().toLowerCase();if(n.startsWith("current")){let o=n.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,f=parseInt(l,10);if(!isNaN(f))return i==="+"?r+f:r-f}return r}return or.test(n)?parseInt(n,10):r}var rt=require("react/jsx-runtime");function I(e){return Oe(e,(t,r,n)=>(0,rt.jsx)("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:n},`${r}-${t}`))}var m=require("react/jsx-runtime");function nt(e){return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:I(e.title)}),(0,m.jsx)("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:I(e.description)})]})}var T=require("react/jsx-runtime");function ot(e){if(!e.section.title&&!e.section.description)return(0,T.jsx)(F,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return(0,T.jsxs)("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[(0,T.jsx)(nt,{description:e.section.description,title:e.section.title}),(0,T.jsx)(F,{compact:e.section.compact,children:e.children})]})}var lt=require("react");var z=require("react/jsx-runtime");function it(){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 at(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((r,n)=>(0,u.jsxs)(lt.Fragment,{children:[(0,u.jsx)(ot,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&(0,u.jsx)(it,{})]},n)),e.control&&(0,u.jsx)(te,{children:e.control})]})})})}var st=require("react/jsx-runtime");function ct(e){return(0,st.jsx)("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}var ut=require("react/jsx-runtime");function A(e){let t=I(e.text);return t?(0,ut.jsx)(ct,{children:t}):null}var dt=require("tailwind-merge"),V=require("react/jsx-runtime");function ft(e){let t=R(e.field)||y(e.field);return(0,V.jsxs)("label",{"data-slot":"field-label","data-normal":t,className:(0,dt.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 S=require("react/jsx-runtime");function mt(e){return(0,S.jsxs)("div",{"data-slot":"field-content",className:"flex flex-1 flex-col gap-1.5 leading-snug",children:[(0,S.jsx)(ft,{field:e.field,children:e.field.label}),e.orientation===x&&(0,S.jsx)(A,{text:e.field.description})]})}var p=require("react/jsx-runtime");function pt(e){let t=w(e.field);return(0,p.jsxs)(p.Fragment,{children:[e.field.name&&e.field.label&&(0,p.jsx)(mt,{field:e.field,orientation:t}),e.children,t===d&&e.field.description&&(0,p.jsx)(A,{text:e.field.description})]})}function gt(e,t){return e?t(e):null}var O=require("react/jsx-runtime");function xt(e){let t=Ye(e.field,e.value),{commonPropsWithOptions:r,defaultValue:n}=Ue(e.field,e.commonProps,t,e.value),o=$e(e.field,n);return gt(e.config.inputs[e.field.type],i=>(0,O.jsxs)(pt,{field:e.field,children:[(0,O.jsx)(i,{...e.ariaAttributes,...r,...e.dataAttributes,...o}),(0,O.jsx)(A,{text:e.field.description})]}))}var bt=require("tailwind-merge"),Z=require("react/jsx-runtime");function yt(e){let t=Qe(e.column?.advanced?.cols);return(0,Z.jsx)("div",{className:"flex w-full flex-col gap-4",children:(0,Z.jsx)("div",{className:(0,bt.twMerge)("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}var J=require("react/jsx-runtime");function Rt(e){return!e.errors||e.errors.length===0?null:(0,J.jsx)("ul",{className:"text-sm text-red-600 dark:text-red-500",id:e.name?`${e.name}-error`:void 0,children:e.errors?.map((t,r)=>(0,J.jsx)("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Tt=require("tailwind-merge"),At=require("react/jsx-runtime");function v(e){let t=e.errors&&e.errors.length>0;return(0,At.jsx)("div",{"data-slot":"field",...t&&{[ye]:"true"},...e.disabled&&{[Re]:"true"},"data-orientation":e.orientation,className:(0,Tt.twMerge)("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",je(e.cols),e.className),children:e.children})}var Nt=require("react/jsx-runtime");function ht(e){return(0,Nt.jsx)(v,{...e,orientation:d,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}var Et=require("react/jsx-runtime");function Ft(e){return(0,Et.jsx)(v,{...e,orientation:x,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}var Q=require("react/jsx-runtime");function Ct(e){return e.orientation===d?(0,Q.jsx)(ht,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):(0,Q.jsx)(Ft,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var G=W();function It(e){if(c(e))return ir(e)}function ir(e){if(Pe(e))return et();if(ke(e)){let t=e.advanced?.length?.min??G,r=e.advanced?.length?.max??G+5;return tt(q(t,G),q(r,G))}}function St(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Le(e)?{...r,...lr(e)}:c(e)?{...r,...ar(e)}:De(e)?{...r,...cr(e)}:r}function lr(e){let t=Se(e.type),r={...e,type:t};return{...Ot(e),...sr(r),...we(r)?Pt(r):{},type:t}}function ar(e){let t=It(e);return t?{options:t}:{}}function cr(e){return{...Ot(e),...Pt(e)}}function Ot(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function sr(e){return _e(e)?ur(e):{}}function Pt(e){return kt(e,{min:Fe,max:Ee})}function ur(e){return kt(e,{min:he,max:Ne})}function kt(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 Lt(e,t){let r=qe(e.advanced?.aria);return t&&t.length>0&&(r[be]="true",r[xe]=`${e.name}-error`),r}function Dt(e){return ze(e.advanced?.data)}function wt(e){if(!e.field.type)return null;let t=St(e.field,e.disabled),r=Dt(e.field),n=Lt(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o})}var h=require("react/jsx-runtime");function _t(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,n=w(e.field),o=Be(e.field,e.disabled);return(0,h.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,h.jsx)(Ct,{cols:t,disabled:o,errors:r,orientation:n,children:(0,h.jsx)(wt,{disabled:o,errors:r,field:e.field,children:e.children})}),(0,h.jsx)(Rt,{errors:r,name:e.field.name})]})}var Mt=require("react"),N=require("react/jsx-runtime");function j(e){let t=M(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>(0,N.jsxs)(Mt.Fragment,{children:[Me(o)&&(0,N.jsx)(r,{column:o,children:(0,N.jsx)(j,{...e,fields:o.fields})}),Ve(o)&&(0,N.jsx)(n,{disabled:e.disabled,field:o,children:e.children})]},i))}var vt=require("react/jsx-runtime"),Vt=e=>(0,vt.jsx)(j,{...e,components:{column:yt,field:_t}});var B=require("react/jsx-runtime");function X(e){return(0,B.jsx)(at,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>(0,B.jsx)(Vt,{disabled:t,fields:r,children:n=>(0,B.jsx)(xt,{...n,config:e.config,source:e.source,value:e.value})})})}var Gt=require("react");var ee=require("react/jsx-runtime");function Bt(e){return(0,ee.jsx)(Gt.Suspense,{fallback:(0,ee.jsx)(X,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}
|
package/dist/server/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as $e}from"react/jsx-runtime";function E(e){return $e("div",{"data-slot":"field-control",className:"flex w-full flex-row gap-4",children:e.children})}import{jsx as qe}from"react/jsx-runtime";function u(e){return qe("div",{"data-slot":"field-group",className:"flex w-full flex-col gap-8",children:e.children})}import{Fragment as We,jsx as I,jsxs as ze}from"react/jsx-runtime";function P(e){return ze(We,{children:[I("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:e.title}),I("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.description})]})}import{jsx as g,jsxs as Je}from"react/jsx-runtime";function L(e){return!e.title&&!e.description?g(u,{children:e.children}):Je("fieldset",{"data-slot":"field-set",className:"flex flex-col gap-6",children:[g(P,{title:e.title,description:e.description}),g(u,{children:e.children})]})}import{Fragment as Ke}from"react";import{jsx as _}from"react/jsx-runtime";function w(){return _("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:_("div",{className:"absolute inset-0 top-1/2 h-px w-full bg-slate-200 dark:bg-slate-800"})})}function d(e=[]){return Array.isArray(e)?e.filter(t=>t.hidden!==!0).sort((t,r)=>M(t)-M(r)):[]}function M(e){return e.order??Number.MAX_VALUE}function c(e){return Object.entries(e??{})}import{jsx as s,jsxs as D}from"react/jsx-runtime";function O(e){let t=d(e.sections);return s("div",{className:"h-full w-full",children:s("form",{noValidate:e.noValidate,action:e.action,children:D(u,{children:[t.map((r,n)=>D(Ke,{children:[s(L,{description:r.description,title:r.title,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&s(w,{})]},n)),e.control&&s(E,{children:e.control})]})})})}import{jsx as Qe}from"react/jsx-runtime";function v(e){return Qe("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}function a(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function m(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var y="input";var k="input/number",V="textarea",b="column",Y="fields",U="radio",X="value",G="select",B="select/month",H="select/year",$="email",q="number",W="password";var f="text",z="aria-errormessage",J="aria-invalid",K="data-invalid",Q="aria",Z="data";var j="minLength",ee="maxLength";function te(e){return e.type===B}function re(e){return e.type===H}function ne(e){return i(e)||x(e)}var oe=A(y),x=A(U),i=A(G);function ie(e){return e.type===b&&Y in e}function le(e){return e.type!==b}function ae(e){return e.type===V}function ue(e){return e.type===f||e.type===$||e.type===W||e.type==="tel"}function se(e){return e.type===k||e.type===q}function de(e=f){if(e){let t=e.match(/[^/]+$/);if(t){let[r]=t;if(r!==y)return r.trim().toLowerCase()}}return f}function A(e){return t=>t.type===e||t.type.startsWith(`${e}/`)}function ce(e,t={}){if(i(e)&&e.disabled){let r=e.name?t[e.name]:void 0;if(r&&a(r))return[r]}}function me(e,t){if(t){let r=t[e.name];if(x(e)||i(e)&&!e.disabled)return r}}function fe(e,t=X){if(e!=null){if(m(e))return e;if(a(e)){let r=je(e,t);if(m(r))return r}}}function je(e,t){let r=et(e,t);if(m(r))return r}function et(e,t){if(!t||!a(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(a(n)&&o in n)n=n[o];else return null;return n}function pe(e,t,r){let n=ce(e,t);return me(e,r)??n}function ge(e,t){return fe(e.name?t?.[e.name]:void 0)}function ye(e,t,r){return ne(e)&&Array.isArray(r)?{...t,options:r}:t}import{Fragment as tt,jsx as be,jsxs as rt}from"react/jsx-runtime";function xe(e){let t=ge(e.field,e.value),r=pe(e.field,e.value,e.source),n=ye(e.field,e.commonProps,r),o=e.config.inputs[e.field.type];return o?rt(tt,{children:[be(o,{...e.ariaAttributes,...n,...e.dataAttributes,defaultValue:t}),e.field.description&&be(v,{children:e.field.description})]}):null}import{Fragment as nt}from"react";import{jsx as R,jsxs as ot}from"react/jsx-runtime";function C(e){let t=d(e.fields),{column:r,field:n}=e.components;return t.map((o,l)=>ot(nt,{children:[ie(o)&&R(r,{column:o,children:R(C,{...e,fields:o.fields,withinColumn:!0})}),le(o)&&R(n,{disabled:e.disabled,field:o,withinColumn:e.withinColumn,children:e.children})]},l))}import{jsx as Ae}from"react/jsx-runtime";function Re(e){return!e.errors||e.errors.length===0?null:Ae("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)=>Ae("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}var Ce={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},Te={1:"col-span-1",2:"col-span-2",3:"col-span-3"};function Fe(e,t=2){return Ce[e&&e in Ce?e:t]}function Se(e){if(e&&e in Te)return Te[e]}import{twMerge as it}from"tailwind-merge";import{jsx as he,jsxs as lt}from"react/jsx-runtime";function Ne(e){let t=Fe(e.column?.advanced?.cols),r=e.column?.fields??[],n=c(e.errors).filter(([o])=>r.find(l=>l.name===o)).flatMap(([,o])=>o??[]);return lt("div",{className:"flex w-full flex-col gap-4",children:[he("div",{className:it("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children}),he(Re,{errors:n})]})}function Ee(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Ie(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 T(){return new Date().getFullYear()}function F(e,t){if(typeof e=="number")return e;let r=t??T(),n=e.trim().toLowerCase();if(n.startsWith("current")){let l=n.split("+");if(l.length===2){let N=parseInt(l[1],10);if(!isNaN(N))return r+N}return r}let o=parseInt(n,10);return isNaN(o)?r:o}var p=T();function Pe(e){if(i(e))return at(e)}function at(e){if(te(e))return Ee();if(re(e)){let t=e.advanced?.length?.min??p,r=e.advanced?.length?.max??p+5;return Ie(F(t,p),F(r,p))}}function Le(e,t=!1){let r={disabled:t??e.readonly,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return oe(e)?{...r,...dt(e)}:i(e)?{...r,...ct(e)}:ae(e)?{...r,...mt(e)}:r}function dt(e){let t=de(e.type),r={...e,type:t};return{..._e(e),...ft(r),...ue(r)?we(r):{},type:t}}function ct(e){let t=Pe(e);return t?{options:t}:{}}function mt(e){return{..._e(e),...we(e)}}function _e(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ft(e){return se(e)?pt(e):{}}function we(e){return Me(e,{min:j,max:ee})}function pt(e){return Me(e,{min:"min",max:"max"})}function Me(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 De(e,t){let r={};for(let[n,o]of c(t))r[`${e}-${n}`]=o;return r}function Oe(e){return De(Q,e)}function ve(e){return De(Z,e)}function ke(e,t){let r=Oe(e.advanced?.aria);return t&&t.length>0&&(r[J]="true",r[z]=`${e.name}-error`),r}function Ve(e){return ve(e.advanced?.data)}function Ye(e){if(!e.field.type)return null;let t=Le(e.field,e.disabled),r=Ve(e.field),n=ke(e.field,e.errors),o={...e.field,disabled:e.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o,withinColumn:e.withinColumn})}import{jsx as gt,jsxs as yt}from"react/jsx-runtime";function Ue(e){return yt("label",{"data-slot":"field-label",className:"flex w-fit items-center gap-2 text-sm leading-snug font-medium select-none",htmlFor:e.name,children:[e.children,!e.required&>("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{twMerge as bt}from"tailwind-merge";import{jsx as Xe,jsxs as xt}from"react/jsx-runtime";function Ge(e){let t=e.field.name?e.errors?.[e.field.name]:void 0;return xt("div",{...t&&{[K]:"true"},"data-slot":"field",className:bt("flex w-full flex-col gap-3 *:w-full data-[invalid=true]:text-red-500",Se(e.field.advanced?.cols)),children:[e.field.name&&e.field.label&&Xe(Ue,{name:e.field.name,required:e.field.required,children:e.field.label}),Xe(Ye,{disabled:e.disabled,errors:t,field:e.field,withinColumn:e.withinColumn,children:e.children})]})}import{jsx as At}from"react/jsx-runtime";var Be=e=>At(C,{...e,components:{column:Ne,field:Ge}});import{jsx as S}from"react/jsx-runtime";function h(e){return S(O,{control:e.children,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>S(Be,{disabled:t,fields:r,children:n=>S(xe,{...n,config:e.config,source:e.source,value:e.value})})})}import{Suspense as Rt}from"react";import{jsx as He}from"react/jsx-runtime";function Ct(e){return He(Rt,{fallback:He(h,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}export{Ct as Fallback,h as Form};
|
|
1
|
+
import{jsx as Ct}from"react/jsx-runtime";function $(e){return Ct("div",{"data-slot":"field-control",className:"w-full",children:e.children})}import{jsx as It}from"react/jsx-runtime";function y(e){return It("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",H="input/email",K="input/number";var W="textarea",q="radio",z="checkbox",Z="select",J="select/month",Q="select/year";var L="column";var j="label",D="value",E="options",w="email",ee="number",te="password",re="tel",R="text",ne="aria-errormessage",oe="aria-invalid",ie="data-invalid",le="data-readonly",ae="aria",ce="data",se="min",ue="max",de="minLength",fe="maxLength",f="$ref";var u="vertical",m="horizontal";function a(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function p(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function C(e){return typeof e=="string"}var St=/[^/]+$/;function me(e,t=D){if(e!=null){if(p(e))return e;if(a(e)){let r=Ot(e,t);if(p(r))return r}}}function Ot(e,t){let r=T(e,t);if(p(r))return r}function T(e,t){if(!t||!a(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(a(n)&&o in n)n=n[o];else return null;return n}function pe(e,t={label:j,value:D}){return e.map(r=>{if(a(r)){let n=T(r,t.label),o=T(r,t.value);if(p(n)&&p(o))return{label:`${n}`,value:`${o}`}}return r})}function ge(e=R){if(e){let t=e.match(St);if(t){let[r]=t;if(r!==F)return r.trim().toLowerCase()}}return R}var Pt=/\[([^\]]+)\]\(([^)]+)\)/g;function xe(e,t){if(!e||e.trim().length===0)return null;let r,n=0,o=!1,i=[];for(;(r=Pt.exec(e))!==null;){let[l,d,Ft]=r,N=r.index;o=!0,N>n&&i.push(e.substring(n,N));let Et=t?t(N,Ft,d):l;i.push(Et),n=N+l.length}return o?(n<e.length&&i.push(e.substring(n)),i):e}var be=e=>s(J)(e),ye=e=>s(Q)(e),g=s(z),Re=s(F),x=s(q),c=s(Z),Te=s(W),Ae=s(R,w,te,re),Ir=s(H,w),he=s(K,ee);function Ne(e){return e.type===L}function Fe(e){return e.type!==L}function Ee(e){return c(e)||x(e)}function _(e){return e!=null&&e!==""}function s(...e){return t=>{let r=C(t.type)?t.type:void 0;return r?e.some(n=>r===n||r?.startsWith(`${n}/`)):!1}}function Ce(e,t={}){if(c(e)&&e.disabled){let r=e.name?t?.[e.name]:void 0;if(r&&a(r))return[r]}}function I(e){return x(e)||g(e)?m:e.advanced?.orientation??u}function Ie(e,t){let r=e.readonly??!1;return t||r}function Se(e){if(x(e)||c(e)&&!e.disabled){let t=e.source;if(Array.isArray(t)||a(t)&&!(f in t))return t}}function Oe(e,t){let r=Se(e);return r||Ce(e,t)}function kt(e,t){let r=a(t)&&e.name in t?t[e.name]:t;return me(r,e.advanced?.entity)}function Lt(e,t,r){return Ee(e)&&Array.isArray(r)?{...t,[E]:r}:t}function Dt(e,t,r){if(e.required&&!_(r)&&c(e)&&e.advanced?.preselected!==!1&&E in t){let n=t[E];if(Array.isArray(n)&&n.length===1)return n[0]}return r}function wt(e,t){return c(e)&&Array.isArray(t)?pe(t,e.advanced?.options):t}function Pe(e,t,r,n){let o=kt(e,n),i=Array.isArray(r)?wt(e,r):r,l=Lt(e,t,i),d=Dt(e,l,o);return{commonPropsWithOptions:l,defaultValue:d}}function ke(e,t){return g(e)?{defaultChecked:_(t)}:{defaultValue:t}}var _t=/^#\/definition\//;function O(e=[],t){let r=S(e,t);return Array.isArray(r)?r.filter(n=>n.hidden!==!0).sort((n,o)=>Le(n)-Le(o)):[]}function S(e,t,r=new Map,n=new WeakSet){if(!Mt(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=>S(i,t,r,n));if(f in e&&C(e[f])){let i=e[f].replace(_t,""),l=T(t,i);return l!==null?S(l,t,r,n):e}let o={};for(let[i,l]of Object.entries(e))o[i]=S(l,t,r,n);return n.delete(e),r.set(e,o),o}function De(e){return Object.entries(e??{})}function Le(e){return e.order??Number.MAX_VALUE}function Mt(e){return e!==void 0&&a(e)&&Object.keys(e).length>0}function we(e,t){let r={};for(let[n,o]of De(t))r[`${e}-${n}`]=o;return r}function _e(e){return we(ae,e)}function Me(e){return we(ce,e)}var Ve={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3"},ve={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3"};function Ge(e,t=2){return Ve[e&&e in Ve?e:t]}function Be(e){if(e&&e in ve)return ve[e]}var Vt=/^\d+$/;function Xe(){return Array.from({length:12},(e,t)=>({value:(t+1).toString(),label:new Date(0,t).toLocaleString("default",{month:"long"})}))}function Ye(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 M(){return new Date().getFullYear()}function V(e,t){if(typeof e=="number")return e;let r=t??M(),n=e.trim().toLowerCase();if(n.startsWith("current")){let o=n.match(/^current([+-])(\d+)$/);if(o){let[,i,l]=o,d=parseInt(l,10);if(!isNaN(d))return i==="+"?r+d:r-d}return r}return Vt.test(n)?parseInt(n,10):r}import{jsx as vt}from"react/jsx-runtime";function A(e){return xe(e,(t,r,n)=>vt("a",{className:"underline",href:r,rel:"noopener noreferrer",target:"_blank",children:n},`${r}-${t}`))}import{Fragment as Gt,jsx as Ue,jsxs as Bt}from"react/jsx-runtime";function $e(e){return Bt(Gt,{children:[Ue("legend",{className:"mb-3 font-medium text-slate-800 dark:text-slate-200",children:A(e.title)}),Ue("p",{className:"-mt-2 text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:A(e.description)})]})}import{jsx as v,jsxs as Xt}from"react/jsx-runtime";function He(e){if(!e.section.title&&!e.section.description)return v(y,{compact:e.section.compact,children:e.children});let t=e.section.fields||[];return Xt("fieldset",{"data-slot":"field-set","data-empty":t.length===0,className:"flex flex-col data-[empty=false]:gap-6",children:[v($e,{description:e.section.description,title:e.section.title}),v(y,{compact:e.section.compact,children:e.children})]})}import{Fragment as Yt}from"react";import{jsx as Ke}from"react/jsx-runtime";function We(){return Ke("div",{"data-slot":"field-separator",className:"relative -my-2 h-5 text-sm",children:Ke("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 qe}from"react/jsx-runtime";function ze(e){let t=O(e.sections,e.definition);return h("div",{className:"h-full w-full",children:h("form",{noValidate:e.noValidate,action:e.action,children:qe(y,{children:[t.map((r,n)=>qe(Yt,{children:[h(He,{section:r,children:e.children({disabled:e.readOnly,fields:r.fields})}),r.separator&&h(We,{})]},n)),e.control&&h($,{children:e.control})]})})})}import{jsx as Ut}from"react/jsx-runtime";function Ze(e){return Ut("p",{className:"text-sm leading-normal font-normal text-slate-600 dark:text-slate-400",children:e.children})}import{jsx as $t}from"react/jsx-runtime";function b(e){let t=A(e.text);return t?$t(Ze,{children:t}):null}import{twMerge as Ht}from"tailwind-merge";import{jsx as Kt,jsxs as Wt}from"react/jsx-runtime";function Je(e){let t=x(e.field)||g(e.field);return Wt("label",{"data-slot":"field-label","data-normal":t,className:Ht("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&&Kt("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:"(Optional)"})]})}import{jsx as Qe,jsxs as qt}from"react/jsx-runtime";function je(e){return qt("div",{"data-slot":"field-content",className:"flex flex-1 flex-col gap-1.5 leading-snug",children:[Qe(Je,{field:e.field,children:e.field.label}),e.orientation===m&&Qe(b,{text:e.field.description})]})}import{Fragment as zt,jsx as et,jsxs as Zt}from"react/jsx-runtime";function tt(e){let t=I(e.field);return Zt(zt,{children:[e.field.name&&e.field.label&&et(je,{field:e.field,orientation:t}),e.children,t===u&&e.field.description&&et(b,{text:e.field.description})]})}function rt(e,t){return e?t(e):null}import{jsx as nt,jsxs as Jt}from"react/jsx-runtime";function ot(e){let t=Oe(e.field,e.value),{commonPropsWithOptions:r,defaultValue:n}=Pe(e.field,e.commonProps,t,e.value),o=ke(e.field,n);return rt(e.config.inputs[e.field.type],i=>Jt(tt,{field:e.field,children:[nt(i,{...e.ariaAttributes,...r,...e.dataAttributes,...o}),nt(b,{text:e.field.description})]}))}import{twMerge as Qt}from"tailwind-merge";import{jsx as it}from"react/jsx-runtime";function lt(e){let t=Ge(e.column?.advanced?.cols);return it("div",{className:"flex w-full flex-col gap-4",children:it("div",{className:Qt("grid grid-cols-1 gap-8 sm:gap-4",t),children:e.children})})}import{jsx as at}from"react/jsx-runtime";function ct(e){return!e.errors||e.errors.length===0?null:at("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)=>at("li",{children:t},e.name?`${e.name}-error-${r}`:r))})}import{twMerge as jt}from"tailwind-merge";import{jsx as er}from"react/jsx-runtime";function P(e){let t=e.errors&&e.errors.length>0;return er("div",{"data-slot":"field",...t&&{[ie]:"true"},...e.disabled&&{[le]:"true"},"data-orientation":e.orientation,className:jt("group flex w-full flex-col items-center data-[invalid=true]:text-red-600 data-[invalid=true]:dark:text-red-500","has-[>[role=checkbox],[role=radiogroup]]:items-start","has-[>[role=checkbox]]:flex-row-reverse","has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radiogroup]]:mt-px",Be(e.cols),e.className),children:e.children})}import{jsx as tr}from"react/jsx-runtime";function st(e){return tr(P,{...e,orientation:u,className:"gap-3 has-[>[data-slot=field-content]]:items-start [&>*:not([role=checkbox]):not([role=radiogroup])]:w-full",children:e.children})}import{jsx as rr}from"react/jsx-runtime";function ut(e){return rr(P,{...e,orientation:m,className:"gap-2 md:flex-row md:gap-4 has-[>[role=radiogroup]]:md:flex-col [&:not(:has(>[role=checkbox],[role=radiogroup]))]:md:justify-between [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:w-full [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:md:w-1/2 [&>*:not([role=checkbox]):not([role=radiogroup]):not([data-slot=field-content])]:xl:w-2/5 [&>[data-slot=field-content]]:min-w-0 [&>[data-slot=field-content]]:flex-grow [&>[data-slot=field-content]]:self-start",children:e.children})}import{jsx as dt}from"react/jsx-runtime";function ft(e){return e.orientation===u?dt(st,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children}):dt(ut,{cols:e.cols,disabled:e.disabled,errors:e.errors,children:e.children})}var k=M();function mt(e){if(c(e))return nr(e)}function nr(e){if(be(e))return Xe();if(ye(e)){let t=e.advanced?.length?.min??k,r=e.advanced?.length?.max??k+5;return Ye(V(t,k),V(r,k))}}function pt(e,t=!1){let r={disabled:t,id:e.name,name:e.name,placeholder:e.placeholder,required:e.required};return Re(e)?{...r,...or(e)}:c(e)?{...r,...ir(e)}:Te(e)?{...r,...lr(e)}:r}function or(e){let t=ge(e.type),r={...e,type:t};return{...gt(e),...ar(r),...Ae(r)?xt(r):{},type:t}}function ir(e){let t=mt(e);return t?{options:t}:{}}function lr(e){return{...gt(e),...xt(e)}}function gt(e){let t=e.advanced?.autocomplete;return t?{autoComplete:t}:{}}function ar(e){return he(e)?cr(e):{}}function xt(e){return bt(e,{min:de,max:fe})}function cr(e){return bt(e,{min:se,max:ue})}function bt(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 yt(e,t){let r=_e(e.advanced?.aria);return t&&t.length>0&&(r[oe]="true",r[ne]=`${e.name}-error`),r}function Rt(e){return Me(e.advanced?.data)}function Tt(e){if(!e.field.type)return null;let t=pt(e.field,e.disabled),r=Rt(e.field),n=yt(e.field,e.errors),o={...e.field,disabled:t.disabled};return e.children({ariaAttributes:n,commonProps:t,dataAttributes:r,field:o})}import{jsx as G,jsxs as sr}from"react/jsx-runtime";function At(e){let t=e.field.advanced?.cols,r=e.field.name?e.errors?.[e.field.name]:void 0,n=I(e.field),o=Ie(e.field,e.disabled);return sr("div",{className:"flex flex-col gap-3",children:[G(ft,{cols:t,disabled:o,errors:r,orientation:n,children:G(Tt,{disabled:o,errors:r,field:e.field,children:e.children})}),G(ct,{errors:r,name:e.field.name})]})}import{Fragment as ur}from"react";import{jsx as B,jsxs as dr}from"react/jsx-runtime";function X(e){let t=O(e.fields),{column:r,field:n}=e.components;return t.map((o,i)=>dr(ur,{children:[Ne(o)&&B(r,{column:o,children:B(X,{...e,fields:o.fields})}),Fe(o)&&B(n,{disabled:e.disabled,field:o,children:e.children})]},i))}import{jsx as fr}from"react/jsx-runtime";var ht=e=>fr(X,{...e,components:{column:lt,field:At}});import{jsx as Y}from"react/jsx-runtime";function U(e){return Y(ze,{config:e.config,control:e.children,definition:e.definition,readOnly:e.readOnly,sections:e.sections,children:({disabled:t,fields:r})=>Y(ht,{disabled:t,fields:r,children:n=>Y(ot,{...n,config:e.config,source:e.source,value:e.value})})})}import{Suspense as mr}from"react";import{jsx as Nt}from"react/jsx-runtime";function pr(e){return Nt(mr,{fallback:Nt(U,{config:e.config,sections:e.sections,readOnly:!0}),children:e.children})}export{pr as Fallback,U as Form};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { DataSource } from '
|
|
1
|
+
import type { DataSource } from './type';
|
|
2
2
|
export declare function fetcher(dataSource: DataSource): Promise<any>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CommonProps, DataSource, Field, Nullable, Value } from '../type';
|
|
2
|
+
export declare function resolveSource(field: Field, value?: Nullable<Record<string, unknown>>): DataSource | unknown[] | undefined;
|
|
3
|
+
export declare function getInputValue<K>(field: Field, value?: Nullable<K>): Value | undefined;
|
|
4
|
+
export declare function mergeOptionsProps(field: Field, commonProps: CommonProps, options?: Nullable<DataSource | unknown[]>): CommonProps | {
|
|
5
|
+
options: unknown[];
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
id?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function getPreselectedValue(field: Field, commonProps: CommonProps, value?: Value): any;
|
|
13
|
+
export declare function getOptions<T>(field: Field, data?: Nullable<T[]>): (T | {
|
|
14
|
+
label: string;
|
|
15
|
+
value: string;
|
|
16
|
+
})[] | null | undefined;
|
|
17
|
+
export declare function prepareInputProps<T, K>(field: Field, commonProps: CommonProps, data?: Nullable<DataSource | T[]>, value?: Nullable<K>): {
|
|
18
|
+
commonPropsWithOptions: CommonProps | {
|
|
19
|
+
options: unknown[];
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
id?: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
};
|
|
26
|
+
defaultValue: any;
|
|
27
|
+
};
|
|
28
|
+
export declare function prepareInputValue<T>(field: Field, value?: Nullable<T>): {
|
|
29
|
+
checked: boolean;
|
|
30
|
+
value?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
value: string | NonNullable<T>;
|
|
33
|
+
checked?: undefined;
|
|
34
|
+
};
|
|
35
|
+
export declare function prepareDefaultValue<T>(field: Field, value?: Nullable<T>): {
|
|
36
|
+
defaultChecked: boolean;
|
|
37
|
+
defaultValue?: undefined;
|
|
38
|
+
} | {
|
|
39
|
+
defaultValue: Nullable<T> | undefined;
|
|
40
|
+
defaultChecked?: undefined;
|
|
41
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './type';
|
|
2
|
+
export * from './fetcher';
|
|
3
|
+
export * from './helper/input';
|
|
4
|
+
export * from './util/attributes';
|
|
5
|
+
export * from './util/build';
|
|
6
|
+
export * from './util/column';
|
|
7
|
+
export * from './util/constant';
|
|
8
|
+
export * from './util/date';
|
|
9
|
+
export * from './util/extract';
|
|
10
|
+
export * from './util/is-input';
|
|
11
|
+
export * from './util/is-type';
|
|
12
|
+
export * from './util/prepare';
|
|
13
|
+
export * from './util/schema';
|
|
14
|
+
export * from './util/source';
|
|
15
|
+
export * from './util/string';
|
|
16
|
+
export * from './util/url';
|
|
17
|
+
export * from './handle/proxy-event';
|
|
18
|
+
export * from './handle/source-event';
|
|
19
|
+
export * from './handle/value-event';
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { core, z, ZodObject } from 'zod';
|
|
2
|
+
export type Schema = z.ZodTypeAny;
|
|
3
|
+
export type Schemas = Record<string, Schema>;
|
|
4
|
+
export type ZodSchema = ZodObject<{
|
|
5
|
+
[x: string]: Schema;
|
|
6
|
+
}, core.$strip>;
|
|
7
|
+
export type Nullable<T> = T | null;
|
|
8
|
+
export type DataAttributes = {
|
|
9
|
+
[key: `data-${string}`]: string | number | boolean;
|
|
10
|
+
};
|
|
11
|
+
export type AriaAttributes = {
|
|
12
|
+
[key: `aria-${string}`]: string | number | boolean;
|
|
13
|
+
};
|
|
14
|
+
export type DataSource = {
|
|
15
|
+
url: string;
|
|
16
|
+
body?: BodyInit | Record<string, unknown>;
|
|
17
|
+
cache?: RequestCache;
|
|
18
|
+
headers?: HeadersInit;
|
|
19
|
+
method?: string;
|
|
20
|
+
namespace?: string;
|
|
21
|
+
};
|
|
22
|
+
export type Source = {
|
|
23
|
+
[key: string]: DataSource | Array<unknown>;
|
|
24
|
+
};
|
|
25
|
+
export type Definition = Record<string, unknown>;
|
|
26
|
+
export type Orderable = {
|
|
27
|
+
order?: number;
|
|
28
|
+
};
|
|
29
|
+
export type Hideable = {
|
|
30
|
+
hidden?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type Sections = Array<Section>;
|
|
33
|
+
export type Value = string | number | readonly string[];
|
|
34
|
+
export type Option = {
|
|
35
|
+
label: string;
|
|
36
|
+
value: string;
|
|
37
|
+
};
|
|
38
|
+
export type Fields = Array<Field | Column>;
|
|
39
|
+
export type Base = Orderable & Hideable;
|
|
40
|
+
export type CommonProps = {
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
id?: string;
|
|
43
|
+
name?: string;
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
required?: boolean;
|
|
46
|
+
};
|
|
47
|
+
export type Section = {
|
|
48
|
+
compact?: boolean;
|
|
49
|
+
description?: string;
|
|
50
|
+
fields?: Fields;
|
|
51
|
+
separator?: boolean;
|
|
52
|
+
title?: string;
|
|
53
|
+
} & Base;
|
|
54
|
+
export type Column = {
|
|
55
|
+
advanced?: {
|
|
56
|
+
cols?: number;
|
|
57
|
+
};
|
|
58
|
+
fields: Array<Field>;
|
|
59
|
+
type: 'column' | (string & {});
|
|
60
|
+
} & Base;
|
|
61
|
+
export type SourceEvent = {
|
|
62
|
+
action: 'source';
|
|
63
|
+
source: DataSource;
|
|
64
|
+
target: string;
|
|
65
|
+
};
|
|
66
|
+
export type ValueEvent = {
|
|
67
|
+
action: 'value';
|
|
68
|
+
value: Record<string, Value | Array<Record<string, unknown>>>;
|
|
69
|
+
};
|
|
70
|
+
export type ChangeEvent = Array<SourceEvent | ValueEvent>;
|
|
71
|
+
export type Orientation = 'horizontal' | 'vertical';
|
|
72
|
+
export type Field = CommonProps & {
|
|
73
|
+
advanced?: {
|
|
74
|
+
aria?: AriaAttributes;
|
|
75
|
+
autocomplete?: string;
|
|
76
|
+
cols?: number;
|
|
77
|
+
data?: DataAttributes;
|
|
78
|
+
entity?: string;
|
|
79
|
+
orientation?: Orientation;
|
|
80
|
+
};
|
|
81
|
+
event?: {
|
|
82
|
+
change?: ChangeEvent;
|
|
83
|
+
};
|
|
84
|
+
description?: string;
|
|
85
|
+
fields?: never;
|
|
86
|
+
label?: string;
|
|
87
|
+
name: string;
|
|
88
|
+
readonly?: boolean;
|
|
89
|
+
type: string;
|
|
90
|
+
validation?: {
|
|
91
|
+
required?: string;
|
|
92
|
+
email?: string;
|
|
93
|
+
length?: Length<string>;
|
|
94
|
+
};
|
|
95
|
+
} & Base;
|
|
96
|
+
export type Length<T> = {
|
|
97
|
+
max?: T;
|
|
98
|
+
min?: T;
|
|
99
|
+
};
|
|
100
|
+
export type Input = Field & {
|
|
101
|
+
advanced?: {
|
|
102
|
+
length?: Length<number>;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export type Select = Field & {
|
|
106
|
+
advanced?: {
|
|
107
|
+
autocomplete?: never;
|
|
108
|
+
length?: Length<number | string>;
|
|
109
|
+
options?: Option;
|
|
110
|
+
preselected?: boolean;
|
|
111
|
+
};
|
|
112
|
+
source?: DataSource | Array<unknown>;
|
|
113
|
+
};
|
|
114
|
+
export type Environment = {
|
|
115
|
+
[key: string]: Value;
|
|
116
|
+
};
|
|
117
|
+
export type Protocol = 'http' | 'https';
|
|
118
|
+
export type RemotePattern = {
|
|
119
|
+
hostname?: string;
|
|
120
|
+
port?: number;
|
|
121
|
+
protocol?: Protocol;
|
|
122
|
+
};
|
|
123
|
+
export type FormStateError = {
|
|
124
|
+
title: string;
|
|
125
|
+
detail?: Nullable<Record<string, string[]> | string[]>;
|
|
126
|
+
};
|
|
127
|
+
export type BaseConfig<T> = {
|
|
128
|
+
env?: Environment;
|
|
129
|
+
fetcher: {
|
|
130
|
+
provider: <T>(dataSource: DataSource) => Promise<T>;
|
|
131
|
+
remotePatterns?: Array<RemotePattern>;
|
|
132
|
+
};
|
|
133
|
+
inputs: {
|
|
134
|
+
[key: string]: T;
|
|
135
|
+
};
|
|
136
|
+
style?: {
|
|
137
|
+
compact?: boolean;
|
|
138
|
+
orientation?: Orientation;
|
|
139
|
+
};
|
|
140
|
+
validation: {
|
|
141
|
+
blur?: boolean;
|
|
142
|
+
change?: boolean;
|
|
143
|
+
submit?: boolean;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Field, Nullable } from '../type';
|
|
2
|
+
export declare function buildOptions(field: Field, values?: Nullable<Record<string, unknown>>): Record<string, unknown>[] | undefined;
|
|
3
|
+
export declare function buildOrientation(field: Field): import("..").Orientation;
|
|
4
|
+
export declare function buildDisabled(field: Field, disabled?: boolean): boolean;
|
|
5
|
+
export declare function buildSource(field: Field): import("..").DataSource | unknown[] | undefined;
|