react-luna-form 0.0.4 → 0.0.6

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