@object-ui/fields 3.1.3 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AddressField-B6fPb2Fs.js +3 -0
- package/dist/AddressField-Ctsxkj35.cjs +1 -0
- package/dist/AutoNumberField-DXIYJfiB.js +3 -0
- package/dist/AutoNumberField-f76XU1bR.cjs +1 -0
- package/dist/AvatarField-BHpex3Wa.js +3 -0
- package/dist/AvatarField-CXOdYavl.cjs +1 -0
- package/dist/BooleanField-Bs0urhsx.js +3 -0
- package/dist/BooleanField-DeexI_O2.cjs +1 -0
- package/dist/CodeField-DDOMH8E8.cjs +1 -0
- package/dist/CodeField-tRACqngO.js +3 -0
- package/dist/ColorField-Bar6bOJw.js +3 -0
- package/dist/ColorField-CM9CxZ9h.cjs +1 -0
- package/dist/CurrencyField-CezTX_rA.cjs +1 -0
- package/dist/CurrencyField-D4VwXI9k.js +3 -0
- package/dist/DateField-DDUllj7w.cjs +1 -0
- package/dist/DateField-DjGiK6BH.js +3 -0
- package/dist/DateTimeField-DBh-dYdR.js +3 -0
- package/dist/DateTimeField-DDqgVN3b.cjs +1 -0
- package/dist/EmailField-B-3nY8Pr.cjs +1 -0
- package/dist/EmailField-Cp6yJlpH.js +3 -0
- package/dist/FileField-C1bcL7tu.cjs +1 -0
- package/dist/FileField-DUgt6ai3.js +3 -0
- package/dist/FormulaField-BLV1KgkQ.js +3 -0
- package/dist/FormulaField-CsbQIZ7S.cjs +1 -0
- package/dist/GeolocationField-BbIRH51u.js +3 -0
- package/dist/GeolocationField-UFu9VR-x.cjs +1 -0
- package/dist/GridField-2m74haE0.cjs +1 -0
- package/dist/GridField-O3Jd1NuJ.js +3 -0
- package/dist/ImageField-Cna7g6KL.cjs +1 -0
- package/dist/ImageField-rc1Nzcvb.js +3 -0
- package/dist/LocationField-DpRe9QlH.cjs +1 -0
- package/dist/LocationField-QZPPYo0J.js +3 -0
- package/dist/LookupField-BX4sK8NG.js +904 -0
- package/dist/LookupField-C9rPrHi_.cjs +1 -0
- package/dist/MasterDetailField-BXncIT1s.js +3 -0
- package/dist/MasterDetailField-TNP2825Z.cjs +1 -0
- package/dist/NumberField-DCHTzmDG.js +3 -0
- package/dist/NumberField-SqRwbcY8.cjs +1 -0
- package/dist/ObjectField-BEUHpn_X.js +3 -0
- package/dist/ObjectField-BWZwaFIG.cjs +1 -0
- package/dist/PasswordField-BZ_OeQyw.js +3 -0
- package/dist/PasswordField-kLp-ZyPm.cjs +1 -0
- package/dist/PercentField-B2t2knlc.js +3 -0
- package/dist/PercentField-BzhD6tQm.cjs +1 -0
- package/dist/PhoneField-CirvuysP.cjs +1 -0
- package/dist/PhoneField-CkrCFmcO.js +3 -0
- package/dist/QRCodeField-C4OOLCbE.cjs +1 -0
- package/dist/QRCodeField-CQoGow8y.js +3 -0
- package/dist/RatingField-CZG8SgQ8.cjs +1 -0
- package/dist/RatingField-DecDJkou.js +3 -0
- package/dist/RichTextField-Bog2i4NN.cjs +1 -0
- package/dist/RichTextField-b-8QbNCJ.js +3 -0
- package/dist/SelectField-CAa6c0cB.cjs +1 -0
- package/dist/SelectField-DMy5IxRc.js +3 -0
- package/dist/SignatureField-BvTPE7Dn.js +3 -0
- package/dist/SignatureField-jsb-0AYp.cjs +1 -0
- package/dist/SliderField-B7WvKFv7.js +3 -0
- package/dist/SliderField-DRjEJSxK.cjs +1 -0
- package/dist/SummaryField-DA16Edq3.cjs +1 -0
- package/dist/SummaryField-DVSVfKmY.js +3 -0
- package/dist/TextAreaField--ut87UiB.js +3 -0
- package/dist/TextAreaField-Cxp3DFC6.cjs +1 -0
- package/dist/TextField-CkEDGbkQ.js +3 -0
- package/dist/TextField-aLAzBaLZ.cjs +1 -0
- package/dist/TimeField-D0lF0y_I.cjs +1 -0
- package/dist/TimeField-DA_S6lQV.js +3 -0
- package/dist/UrlField-D0ugmD3f.cjs +1 -0
- package/dist/UrlField-DCnXHR1A.js +3 -0
- package/dist/UserField-DGlorzyG.cjs +1 -0
- package/dist/UserField-V0GmvyGV.js +3 -0
- package/dist/VectorField-BSD85ntU.cjs +1 -0
- package/dist/VectorField-CVi5yrrc.js +3 -0
- package/dist/fields/src/index.d.ts +1 -0
- package/dist/fields/src/record-picker-dialog.stories.d.ts +25 -0
- package/dist/fields/src/record-picker.test.d.ts +1 -0
- package/dist/fields/src/widgets/RecordPickerDialog.d.ts +166 -0
- package/dist/fields/src/widgets/_cell-renderer-bridge.d.ts +3 -0
- package/dist/index.cjs +4 -9
- package/dist/index.js +2229 -2850
- package/dist/jsx-runtime-DHCF5ANT.cjs +6 -0
- package/dist/jsx-runtime-MxADXuRH.js +189 -0
- package/package.json +7 -6
- package/src/index.tsx +6 -0
- package/src/record-picker-dialog.stories.tsx +160 -0
- package/src/record-picker.test.tsx +1696 -0
- package/src/widgets/LookupField.tsx +254 -150
- package/src/widgets/RecordPickerDialog.tsx +1182 -0
- package/src/widgets/_cell-renderer-bridge.ts +19 -0
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("react"),v=require("@object-ui/core"),d=require("@object-ui/components"),S=require("lucide-react");var ie={exports:{}},re={};var Xe;function vt(){if(Xe)return re;Xe=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function s(l,n,a){var i=null;if(a!==void 0&&(i=""+a),n.key!==void 0&&(i=""+n.key),"key"in n){a={};for(var o in n)o!=="key"&&(a[o]=n[o])}else a=n;return n=a.ref,{$$typeof:e,type:l,key:i,ref:n!==void 0?n:null,props:a}}return re.Fragment=r,re.jsx=s,re.jsxs=s,re}var se={};var He;function Ft(){return He||(He=1,process.env.NODE_ENV!=="production"&&(function(){function e(u){if(u==null)return null;if(typeof u=="function")return u.$$typeof===V?null:u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case A:return"Fragment";case M:return"Profiler";case z:return"StrictMode";case y:return"Suspense";case w:return"SuspenseList";case P:return"Activity"}if(typeof u=="object")switch(typeof u.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),u.$$typeof){case C:return"Portal";case Q:return u.displayName||"Context";case G:return(u._context.displayName||"Context")+".Consumer";case L:var N=u.render;return u=u.displayName,u||(u=N.displayName||N.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case $:return N=u.displayName||null,N!==null?N:e(u.type)||"Memo";case k:N=u._payload,u=u._init;try{return e(u(N))}catch{}}return null}function r(u){return""+u}function s(u){try{r(u);var N=!1}catch{N=!0}if(N){N=console;var T=N.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&u[Symbol.toStringTag]||u.constructor.name||"Object";return T.call(N,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),r(u)}}function l(u){if(u===A)return"<>";if(typeof u=="object"&&u!==null&&u.$$typeof===k)return"<...>";try{var N=e(u);return N?"<"+N+">":"<...>"}catch{return"<...>"}}function n(){var u=Y.A;return u===null?null:u.getOwner()}function a(){return Error("react-stack-top-frame")}function i(u){if(I.call(u,"key")){var N=Object.getOwnPropertyDescriptor(u,"key").get;if(N&&N.isReactWarning)return!1}return u.key!==void 0}function o(u,N){function T(){J||(J=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",N))}T.isReactWarning=!0,Object.defineProperty(u,"key",{get:T,configurable:!0})}function c(){var u=e(this.type);return B[u]||(B[u]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),u=this.props.ref,u!==void 0?u:null}function f(u,N,T,R,W,te){var O=T.ref;return u={$$typeof:b,type:u,key:N,props:T,_owner:R},(O!==void 0?O:null)!==null?Object.defineProperty(u,"ref",{enumerable:!1,get:c}):Object.defineProperty(u,"ref",{enumerable:!1,value:null}),u._store={},Object.defineProperty(u._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(u,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(u,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:W}),Object.defineProperty(u,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:te}),Object.freeze&&(Object.freeze(u.props),Object.freeze(u)),u}function g(u,N,T,R,W,te){var O=N.children;if(O!==void 0)if(R)if(Qe(O)){for(R=0;R<O.length;R++)p(O[R]);Object.freeze&&Object.freeze(O)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(O);if(I.call(N,"key")){O=e(u);var h=Object.keys(N).filter(function(E){return E!=="key"});R=0<h.length?"{key: someKey, "+h.join(": ..., ")+": ...}":"{key: someKey}",D[O+R]||(h=0<h.length?"{"+h.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
|
-
let props = %s;
|
|
3
|
-
<%s {...props} />
|
|
4
|
-
React keys must be passed directly to JSX without using spread:
|
|
5
|
-
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,R,O,h,O),D[O+R]=!0)}if(O=null,T!==void 0&&(s(T),O=""+T),i(N)&&(s(N.key),O=""+N.key),"key"in N){T={};for(var F in N)F!=="key"&&(T[F]=N[F])}else T=N;return O&&o(T,typeof u=="function"?u.displayName||u.name||"Unknown":u),f(u,O,T,n(),W,te)}function p(u){m(u)?u._store&&(u._store.validated=1):typeof u=="object"&&u!==null&&u.$$typeof===k&&(u._payload.status==="fulfilled"?m(u._payload.value)&&u._payload.value._store&&(u._payload.value._store.validated=1):u._store&&(u._store.validated=1))}function m(u){return typeof u=="object"&&u!==null&&u.$$typeof===b}var x=j,b=Symbol.for("react.transitional.element"),C=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),z=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),Q=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),$=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),V=Symbol.for("react.client.reference"),Y=x.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=Object.prototype.hasOwnProperty,Qe=Array.isArray,ee=console.createTask?console.createTask:function(){return null};x={react_stack_bottom_frame:function(u){return u()}};var J,B={},X=x.react_stack_bottom_frame.bind(x,a)(),H=ee(l(a)),D={};se.Fragment=A,se.jsx=function(u,N,T){var R=1e4>Y.recentlyCreatedOwnerStacks++;return g(u,N,T,!1,R?Error("react-stack-top-frame"):X,R?ee(l(u)):H)},se.jsxs=function(u,N,T){var R=1e4>Y.recentlyCreatedOwnerStacks++;return g(u,N,T,!0,R?Error("react-stack-top-frame"):X,R?ee(l(u)):H)}})()),se}var Ke;function _t(){return Ke||(Ke=1,process.env.NODE_ENV==="production"?ie.exports=vt():ie.exports=Ft()),ie.exports}var t=_t();function xe({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema;if(l)return t.jsx("span",{className:"text-sm",children:e||"-"});const i=a?.rows,{inputType:o,...c}=n;return i&&i>1?t.jsx(d.Textarea,{...c,value:e||"",onChange:f=>r(f.target.value),placeholder:a?.placeholder,disabled:l||c.disabled}):t.jsx(d.Input,{...c,type:a?.type==="password"?"password":"text",value:e||"",onChange:f=>r(f.target.value),placeholder:a?.placeholder,disabled:l||c.disabled})}const St=Object.freeze(Object.defineProperty({__proto__:null,TextField:xe},Symbol.toStringTag,{value:"Module"}));function ge({value:e,onChange:r,field:s,readonly:l,...n}){if(l)return t.jsx("span",{className:"text-sm",children:e??"-"});const a=s||n.schema,i=a?.precision,{inputType:o,...c}=n;return t.jsx(d.Input,{...c,type:"number",value:e??"",onChange:f=>{const g=f.target.value;r(g===""?null:Number(g))},placeholder:a?.placeholder,disabled:l||c.disabled,step:i?Math.pow(10,-i):"any"})}const Ct=Object.freeze(Object.defineProperty({__proto__:null,NumberField:ge},Symbol.toStringTag,{value:"Module"}));function he({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema,i=a?.widget,o=j.useId(),c=a?.name||o,f=a?.label||"Checkbox";if(l)return t.jsx("span",{className:"text-sm",children:e?"Yes":"No"});const{inputType:g,...p}=n;return i==="checkbox"?t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx(d.Checkbox,{...p,id:c,checked:!!e,onCheckedChange:m=>r(!!m),disabled:l||p.disabled}),t.jsx(d.Label,{htmlFor:c,children:f})]}):t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx(d.Switch,{...p,id:c,checked:!!e,onCheckedChange:r,disabled:l||p.disabled}),t.jsx(d.Label,{htmlFor:c,children:f})]})}const wt=Object.freeze(Object.defineProperty({__proto__:null,BooleanField:he},Symbol.toStringTag,{value:"Module"}));function be({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema,i=a?.options||[];if(l){const o=i.find(c=>c.value===e);return t.jsx("span",{className:"text-sm",children:o?.label||e||"-"})}return t.jsxs(d.Select,{...n,value:e,onValueChange:r,disabled:l||n.disabled,children:[t.jsx(d.SelectTrigger,{className:n.className,id:n.id,children:t.jsx(d.SelectValue,{placeholder:a?.placeholder||"Select an option"})}),t.jsx(d.SelectContent,{position:"popper",children:i.map(o=>t.jsx(d.SelectItem,{value:o.value,children:o.label},o.value))})]})}const Rt=Object.freeze(Object.defineProperty({__proto__:null,SelectField:be},Symbol.toStringTag,{value:"Module"}));function je({value:e,onChange:r,field:s,readonly:l,...n}){if(l)return t.jsx("span",{className:"text-sm",children:e?new Date(e).toLocaleDateString():"-"});const{inputType:a,...i}=n;return t.jsx(d.Input,{...i,type:"date",value:e||"",onChange:o=>r(o.target.value),disabled:l||i.disabled})}const Tt=Object.freeze(Object.defineProperty({__proto__:null,DateField:je},Symbol.toStringTag,{value:"Module"}));function ye({value:e,onChange:r,field:s,readonly:l,errorMessage:n,...a}){const i=s||a.schema;if(l)return e?t.jsx("a",{href:`mailto:${e}`,className:"text-sm text-blue-600 hover:text-blue-800 hover:underline",children:e}):t.jsx("span",{className:"text-sm",children:"-"});const{inputType:o,...c}=a;return t.jsx(d.Input,{...c,type:"email",value:e||"",onChange:f=>r(f.target.value),placeholder:i?.placeholder||"email@example.com",disabled:l||c.disabled,"aria-invalid":!!n})}const Pt=Object.freeze(Object.defineProperty({__proto__:null,EmailField:ye},Symbol.toStringTag,{value:"Module"}));function Ne({value:e,onChange:r,field:s,readonly:l,errorMessage:n,...a}){const i=s||a.schema;if(l)return e?t.jsx("a",{href:`tel:${e}`,className:"text-sm text-blue-600 hover:text-blue-800 hover:underline",children:e}):t.jsx("span",{className:"text-sm",children:"-"});const{inputType:o,...c}=a;return t.jsx(d.Input,{...c,type:"tel",value:e||"",onChange:f=>r(f.target.value),placeholder:i?.placeholder||"(555) 123-4567",disabled:l||c.disabled,"aria-invalid":!!n})}const Ot=Object.freeze(Object.defineProperty({__proto__:null,PhoneField:Ne},Symbol.toStringTag,{value:"Module"}));function ve({value:e,onChange:r,field:s,readonly:l,errorMessage:n,...a}){const i=s||a.schema;if(l)return e?e.startsWith("http://")||e.startsWith("https://")?t.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:text-blue-800 hover:underline",children:e}):t.jsx("span",{className:"text-sm",children:e}):t.jsx("span",{className:"text-sm",children:"-"});const{inputType:o,...c}=a;return t.jsx(d.Input,{...c,type:"url",value:e||"",onChange:f=>r(f.target.value),placeholder:i?.placeholder||"https://example.com",disabled:l||c.disabled,"aria-invalid":!!n})}const kt=Object.freeze(Object.defineProperty({__proto__:null,UrlField:ve},Symbol.toStringTag,{value:"Module"}));function At(e,r="USD"){try{return new Intl.NumberFormat("en-US",{style:"currency",currency:r}).format(e)}catch{return`${r} ${e.toFixed(2)}`}}function Fe({value:e,onChange:r,field:s,readonly:l,errorMessage:n,className:a,...i}){const o=s||i.schema,c=o?.currency||"USD",f=o?.precision??2;if(l)return e==null?t.jsx("span",{className:"text-sm",children:"-"}):t.jsx("span",{className:"text-sm font-medium tabular-nums",children:At(Number(e),c)});const g=p=>{const m=parseFloat(p.target.value);isNaN(m)||r(parseFloat(m.toFixed(f)))};return t.jsxs("div",{className:"relative",children:[t.jsx("span",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500",children:c==="USD"?"$":c}),t.jsx(d.Input,{...i,type:"number",value:e??"",onChange:p=>{const m=p.target.value===""?null:parseFloat(p.target.value);r(m)},onBlur:g,placeholder:o?.placeholder||"0.00",disabled:l||i.disabled,className:`pl-8 ${a||""}`,step:Math.pow(10,-f).toFixed(f),"aria-invalid":!!n})]})}const $t=Object.freeze(Object.defineProperty({__proto__:null,CurrencyField:Fe},Symbol.toStringTag,{value:"Module"}));function _e({value:e,onChange:r,field:s,readonly:l,errorMessage:n,...a}){if(l)return t.jsx("div",{className:"text-sm whitespace-pre-wrap",children:e||"-"});const i=s||a.schema,o=i?.rows||4,c=i?.max_length,{inputType:f,...g}=a;return t.jsxs("div",{className:"relative",children:[t.jsx(d.Textarea,{...g,value:e||"",onChange:p=>r(p.target.value),placeholder:i?.placeholder,disabled:l||g.disabled,rows:o,maxLength:c,"aria-invalid":!!n}),c&&t.jsxs("div",{className:"absolute bottom-2 right-2 text-xs text-gray-400","aria-live":"polite","aria-label":`Character count: ${(e||"").length} of ${c}`,children:[(e||"").length,"/",c]})]})}const Et=Object.freeze(Object.defineProperty({__proto__:null,TextAreaField:_e},Symbol.toStringTag,{value:"Module"}));function oe({value:e,onChange:r,field:s,readonly:l,errorMessage:n,...a}){if(l)return t.jsx("div",{className:"text-sm prose prose-sm max-w-none",children:e||"-"});const i=s||a.schema,o=i?.rows||8,c=i?.format||"markdown";return t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[t.jsxs("span",{children:["Format: ",c]}),t.jsx("span",{className:"italic",children:"Rich text editor (basic)"})]}),t.jsx(d.Textarea,{value:e||"",onChange:f=>r(f.target.value),placeholder:i?.placeholder||"Enter text...",disabled:l||a.disabled,rows:o,className:`font-mono text-sm ${a.className||""}`,"aria-invalid":!!n})]})}const Ze=Object.freeze(Object.defineProperty({__proto__:null,RichTextField:oe},Symbol.toStringTag,{value:"Module"})),Dt=50,zt=j.createContext(null);let rt=zt;try{const e=require("@object-ui/react");e.SchemaRendererContext&&(rt=e.SchemaRendererContext)}catch{}function Mt(e,r,s,l){const n=e[s]??e.id??e._id,a=e[r]??e.label??e.name??String(n),i=l?e[l]:void 0;return{value:n,label:String(a),description:i,...e}}function Se({value:e,onChange:r,field:s,readonly:l,...n}){const[a,i]=j.useState(!1),[o,c]=j.useState(""),[f,g]=j.useState([]),[p,m]=j.useState(!1),[x,b]=j.useState(null),[C,A]=j.useState(0),z=j.useRef(null),[M,G]=j.useState(-1),Q=j.useRef(null),L=s||n.schema,y=L?.field,w=y&&typeof y=="object"&&("reference_to"in y||"reference"in y||"type"in y)?y:L,$=w?.options||[],k=w?.multiple||!1,P=w?.display_field||w?.reference_field||"name",V=w?.description_field,Y=w?.id_field||"id",I=w?.reference_to||w?.reference,ee=j.useContext(rt)?.dataSource??null,J=n.dataSource??L?.dataSource??w?.dataSource??ee,B=J!=null&&typeof J.find=="function"&&!!I,X=n.onCreateNew??L?.onCreateNew,H=B?f:$,D=j.useMemo(()=>{if(B||!o)return H;const h=o.toLowerCase();return H.filter(F=>F.label.toLowerCase().includes(h)||F.description&&F.description.toLowerCase().includes(h))},[B,H,o]);j.useEffect(()=>{G(-1)},[D.length]);const u=j.useCallback(async h=>{if(!(!J||!I)){m(!0),b(null);try{const F={$top:Dt};h&&h.trim()&&(F.$search=h.trim());const E=await J.find(I,F),Z=E?.data??E??[],yt=Z.map(Nt=>Mt(Nt,P,Y,V));g(yt),A(E?.total??Z.length)}catch(F){const E=F instanceof Error?F.message:String(F);b(E),g([])}finally{m(!1)}}},[J,I,P,Y,V]);j.useEffect(()=>{a&&B&&u(o||void 0),a||(c(""),b(null),G(-1))},[a]);const N=j.useCallback(h=>{c(h),B&&(z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{u(h||void 0)},300))},[B,u]);j.useEffect(()=>()=>{z.current&&clearTimeout(z.current)},[]);const T=j.useCallback(h=>$.find(F=>F.value===h)??f.find(F=>F.value===h),[$,f]),R=k?(Array.isArray(e)?e:[]).map(T).filter(Boolean):e?[T(e)].filter(Boolean):[],W=j.useCallback(h=>{if(k){const F=Array.isArray(e)?e:[],E=F.includes(h.value);r(E?F.filter(Z=>Z!==h.value):[...F,h.value])}else r(h.value),i(!1)},[k,e,r]),te=h=>{if(k){const F=Array.isArray(e)?e:[];r(F.filter(E=>E!==h))}else r(null)},O=j.useCallback(h=>{h.key==="ArrowDown"?(h.preventDefault(),G(F=>F<D.length-1?F+1:F)):h.key==="ArrowUp"?(h.preventDefault(),G(F=>F>0?F-1:0)):h.key==="Enter"&&(h.preventDefault(),M>=0&&M<D.length&&W(D[M]))},[D,M,W]);return j.useEffect(()=>{M>=0&&Q.current&&Q.current.querySelector(`[data-lookup-index="${M}"]`)?.scrollIntoView({block:"nearest"})},[M]),l?R.length?k?t.jsx("div",{className:"flex flex-wrap gap-1",children:R.map((h,F)=>t.jsx(d.Badge,{variant:"outline",children:h?.[P]||h?.label},F))}):t.jsx("span",{className:"text-sm",children:R[0]?.[P]||R[0]?.label}):t.jsx("span",{className:"text-sm",children:"-"}):t.jsxs("div",{className:"space-y-2",children:[R.length>0&&t.jsx("div",{className:"flex flex-wrap gap-1",children:R.map((h,F)=>t.jsxs(d.Badge,{variant:"outline",className:"gap-1",children:[h?.[P]||h?.label,t.jsx("button",{onClick:()=>te(h?.value),className:"ml-1 hover:text-destructive",type:"button","aria-label":`Remove ${h?.[P]||h?.label}`,children:t.jsx(S.X,{className:"size-3"})})]},F))}),t.jsxs(d.Dialog,{open:a,onOpenChange:i,children:[t.jsx(d.DialogTrigger,{asChild:!0,children:t.jsxs(d.Button,{variant:"outline",className:"w-full justify-start text-left font-normal",type:"button",children:[t.jsx(S.Search,{className:"mr-2 size-4"}),R.length===0?L?.placeholder||"Select...":k?`${R.length} selected`:"Change selection"]})}),t.jsxs(d.DialogContent,{className:"max-w-md",children:[t.jsx(d.DialogHeader,{children:t.jsxs(d.DialogTitle,{children:[L?.label||"Select"," ",k&&"(multiple)"]})}),t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"relative",children:[t.jsx(S.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground"}),t.jsx(d.Input,{placeholder:"Search...",value:o,onChange:h=>N(h.target.value),onKeyDown:O,className:"w-full pl-9"}),p&&t.jsx(S.Loader2,{className:"absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground","data-testid":"lookup-loading"})]}),x&&t.jsxs("div",{className:"flex flex-col items-center gap-2 py-4",role:"alert",children:[t.jsx(S.AlertCircle,{className:"size-5 text-destructive"}),t.jsx("p",{className:"text-sm text-destructive",children:x}),t.jsx(d.Button,{variant:"outline",size:"sm",onClick:()=>u(o||void 0),type:"button",children:"Retry"})]}),p&&D.length===0&&!x&&t.jsxs("div",{className:"flex flex-col items-center gap-2 py-6",role:"status","aria-live":"polite",children:[t.jsx(S.Loader2,{className:"size-6 animate-spin text-muted-foreground"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading…"})]}),!x&&!(p&&D.length===0)&&t.jsx("div",{ref:Q,className:"max-h-64 overflow-y-auto space-y-1",role:"listbox",children:D.length===0?t.jsxs("div",{className:"py-4 text-center",children:[t.jsx("p",{className:"text-sm text-muted-foreground",children:"No options found"}),X&&t.jsxs(d.Button,{variant:"ghost",size:"sm",className:"mt-2 gap-1",type:"button",onClick:()=>{X(o),i(!1)},children:[t.jsx(S.Plus,{className:"size-4"}),"Create new"]})]}):t.jsxs(t.Fragment,{children:[D.map((h,F)=>{const E=k?(Array.isArray(e)?e:[]).includes(h.value):e===h.value,Z=F===M;return t.jsxs("button",{"data-lookup-index":F,role:"option","aria-selected":E,onClick:()=>W(h),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${Z?"bg-accent text-accent-foreground":E?"bg-accent/50 text-accent-foreground":""}`,type:"button",children:[t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("span",{className:"block truncate",children:h.label}),h.description&&t.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:h.description})]}),E&&t.jsx(d.Badge,{variant:"default",className:"ml-2 shrink-0",children:"Selected"})]},h.value)}),B&&C>D.length&&t.jsxs("p",{className:"text-xs text-muted-foreground text-center py-2",children:["Showing ",D.length," of ",C," results. Refine your search to find more."]}),X&&t.jsxs("button",{type:"button",className:"w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center gap-1.5 text-muted-foreground",onClick:()=>{X(o),i(!1)},children:[t.jsx(S.Plus,{className:"size-3.5"}),"Create new",o?` "${o}"`:""]})]})})]})]})]})]})}const It=Object.freeze(Object.defineProperty({__proto__:null,LookupField:Se},Symbol.toStringTag,{value:"Module"}));function Ce({value:e,onChange:r,field:s,readonly:l,...n}){if(l){if(!e)return t.jsx("span",{className:"text-sm",children:"-"});const o=new Date(e);return t.jsxs("span",{className:"text-sm",children:[o.toLocaleDateString()," ",o.toLocaleTimeString()]})}const{inputType:a,...i}=n;return t.jsx(d.Input,{...i,type:"datetime-local",value:e||"",onChange:o=>r(o.target.value),disabled:l||i.disabled})}const Lt=Object.freeze(Object.defineProperty({__proto__:null,DateTimeField:Ce},Symbol.toStringTag,{value:"Module"}));function we({value:e,onChange:r,field:s,readonly:l,...n}){if(l)return t.jsx("span",{className:"text-sm",children:e||"-"});const{inputType:a,...i}=n;return t.jsx(d.Input,{...i,type:"time",value:e||"",onChange:o=>r(o.target.value),disabled:l||i.disabled})}const Ut=Object.freeze(Object.defineProperty({__proto__:null,TimeField:we},Symbol.toStringTag,{value:"Module"}));function Re({value:e,onChange:r,field:s,readonly:l,errorMessage:n,className:a,...i}){const o=s||i.schema,c=o?.precision??2;if(l)return e==null?t.jsx("span",{className:"text-sm",children:"-"}):t.jsxs("span",{className:"text-sm font-medium tabular-nums",children:[(e*100).toFixed(c),"%"]});const f=e!=null?e*100:"",g=e!=null?e*100:0,p=b=>{if(b.target.value===""){r(null);return}const C=parseFloat(b.target.value),A=isNaN(C)?null:C/100;r(A)},m=b=>{if(l||i.disabled)return;if(!Array.isArray(b)||b.length===0){r(null);return}const C=b[0],A=typeof C=="number"?C/100:null;r(A)},x=Math.pow(10,-c);return t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"relative",children:[t.jsx(d.Input,{...i,type:"number",value:f,onChange:p,placeholder:o?.placeholder||"0",disabled:l||i.disabled,className:`pr-8 ${a||""}`,step:Math.pow(10,-c).toFixed(c),"aria-invalid":!!n}),t.jsx("span",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500",children:"%"})]}),t.jsx(d.Slider,{value:[g],onValueChange:m,min:0,max:100,step:x,disabled:l||i.disabled,className:"w-full","aria-label":"Percentage","data-testid":"percent-slider"})]})}const Bt=Object.freeze(Object.defineProperty({__proto__:null,PercentField:Re},Symbol.toStringTag,{value:"Module"}));function Te({value:e,onChange:r,field:s,readonly:l,className:n,...a}){const[i,o]=j.useState(!1),c=s||a.schema;if(l)return t.jsx("span",{className:"text-sm",children:"••••••••"});const{inputType:f,...g}=a;return t.jsxs("div",{className:"relative",children:[t.jsx(d.Input,{...g,type:i?"text":"password",value:e||"",onChange:p=>r(p.target.value),placeholder:c?.placeholder,disabled:l||g.disabled,className:`pr-10 ${n||""}`}),t.jsx(d.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>o(!i),tabIndex:-1,children:i?t.jsx(S.EyeOff,{className:"size-4 text-gray-500"}):t.jsx(S.Eye,{className:"size-4 text-gray-500"})})]})}const Vt=Object.freeze(Object.defineProperty({__proto__:null,PasswordField:Te},Symbol.toStringTag,{value:"Module"}));function Pe({value:e,onChange:r,field:s,readonly:l,...n}){const a=j.useRef(null),i=s||n.schema,o=i?.multiple||!1,c=i?.accept?i.accept.join(","):void 0,f=i?.maxSize,[g,p]=j.useState(!1),[m,x]=j.useState([]),b=e?Array.isArray(e)?e:[e]:[],C=j.useCallback(y=>{if(y.length===0)return;const w=[],$=y.filter(P=>{if(f&&P.size>f){const V=(f/1048576).toFixed(1);return w.push(`"${P.name}" exceeds max size (${V} MB)`),!1}return!0});if(x(w),$.length===0)return;const k=$.map(P=>({name:P.name,original_name:P.name,size:P.size,mime_type:P.type,url:URL.createObjectURL(P)}));r(o?[...b,...k]:k[0])},[b,o,r,f]),A=j.useCallback(y=>{y.preventDefault(),y.stopPropagation(),p(!0)},[]),z=j.useCallback(y=>{y.preventDefault(),y.stopPropagation(),p(!1)},[]),M=j.useCallback(y=>{y.preventDefault(),y.stopPropagation(),p(!1);const w=Array.from(y.dataTransfer.files);if(c){const $=c.split(",").map(P=>P.trim().toLowerCase()),k=w.filter(P=>{const V=P.name.split("."),Y=V.length>1?"."+V.pop()?.toLowerCase():"";return $.some(I=>I===P.type||Y&&I===Y||I.endsWith("/*")&&P.type.startsWith(I.replace("/*","/")))});C(k)}else C(w)},[c,C]);if(l){if(!e)return t.jsx("span",{className:"text-sm",children:"-"});const y=Array.isArray(e)?e:[e];return t.jsx("div",{className:"flex flex-wrap gap-2",children:y.map((w,$)=>t.jsx("span",{className:"text-sm truncate max-w-xs",children:w.name||w.original_name||"File"},$))})}const G=y=>{C(Array.from(y.target.files||[]))},Q=y=>{if(o){const w=b.filter(($,k)=>k!==y);r(w.length>0?w:null)}else r(null)},L=y=>(y.mime_type||"").startsWith("image/");return t.jsxs("div",{className:n.className,children:[t.jsx("input",{ref:a,type:"file",multiple:o,accept:c,onChange:G,className:"hidden"}),t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{onDragOver:A,onDragLeave:z,onDrop:M,onClick:()=>a.current?.click(),className:`
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./jsx-runtime-DHCF5ANT.cjs`),t=require(`./LookupField-C9rPrHi_.cjs`);let n=require(`react`);n=e.r(n);let r=require(`@object-ui/core`),i=require(`@object-ui/components`),a=require(`lucide-react`);var o=e.t();function s({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema;if(r)return(0,o.jsx)(`span`,{className:`text-sm`,children:e||`-`});let c=s?.rows,{inputType:l,...u}=a;return c&&c>1?(0,o.jsx)(i.Textarea,{...u,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder,disabled:r||u.disabled}):(0,o.jsx)(i.Input,{...u,type:s?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder,disabled:r||u.disabled})}function c({value:e,onChange:t,field:n,readonly:r,...a}){if(r)return(0,o.jsx)(`span`,{className:`text-sm`,children:e??`-`});let s=n||a.schema,c=s?.precision,{inputType:l,...u}=a;return(0,o.jsx)(i.Input,{...u,type:`number`,value:e??``,onChange:e=>{let n=e.target.value;t(n===``?null:Number(n))},placeholder:s?.placeholder,disabled:r||u.disabled,step:c?10**-c:`any`})}function l({value:e,onChange:t,field:r,readonly:a,...s}){let c=r||s.schema,l=c?.widget,u=(0,n.useId)(),d=c?.name||u,f=c?.label||`Checkbox`;if(a)return(0,o.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:p,...m}=s;return l===`checkbox`?(0,o.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,o.jsx)(i.Checkbox,{...m,id:d,checked:!!e,onCheckedChange:e=>t(!!e),disabled:a||m.disabled}),(0,o.jsx)(i.Label,{htmlFor:d,children:f})]}):(0,o.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,o.jsx)(i.Switch,{...m,id:d,checked:!!e,onCheckedChange:t,disabled:a||m.disabled}),(0,o.jsx)(i.Label,{htmlFor:d,children:f})]})}function u({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,c=s?.options||[];return r?(0,o.jsx)(`span`,{className:`text-sm`,children:c.find(t=>t.value===e)?.label||e||`-`}):(0,o.jsxs)(i.Select,{...a,value:e,onValueChange:t,disabled:r||a.disabled,children:[(0,o.jsx)(i.SelectTrigger,{className:a.className,id:a.id,children:(0,o.jsx)(i.SelectValue,{placeholder:s?.placeholder||`Select an option`})}),(0,o.jsx)(i.SelectContent,{position:`popper`,children:c.map(e=>(0,o.jsx)(i.SelectItem,{value:e.value,children:e.label},e.value))})]})}function d({value:e,onChange:t,field:n,readonly:r,...a}){if(r)return(0,o.jsx)(`span`,{className:`text-sm`,children:e?new Date(e).toLocaleDateString():`-`});let{inputType:s,...c}=a;return(0,o.jsx)(i.Input,{...c,type:`date`,value:e||``,onChange:e=>t(e.target.value),disabled:r||c.disabled})}function f({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...s}){let c=n||s.schema;if(r)return e?(0,o.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let{inputType:l,...u}=s;return(0,o.jsx)(i.Input,{...u,type:`email`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder||`email@example.com`,disabled:r||u.disabled,"aria-invalid":!!a})}function p({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...s}){let c=n||s.schema;if(r)return e?(0,o.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let{inputType:l,...u}=s;return(0,o.jsx)(i.Input,{...u,type:`tel`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder||`(555) 123-4567`,disabled:r||u.disabled,"aria-invalid":!!a})}function m({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...s}){let c=n||s.schema;if(r)return e?e.startsWith(`http://`)||e.startsWith(`https://`)?(0,o.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,o.jsx)(`span`,{className:`text-sm`,children:e}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let{inputType:l,...u}=s;return(0,o.jsx)(i.Input,{...u,type:`url`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder||`https://example.com`,disabled:r||u.disabled,"aria-invalid":!!a})}function h(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${t} ${e.toFixed(2)}`}}function g({value:e,onChange:t,field:n,readonly:r,errorMessage:a,className:s,...c}){let l=n||c.schema,u=l?.currency||`USD`,d=l?.precision??2;if(r)return e==null?(0,o.jsx)(`span`,{className:`text-sm`,children:`-`}):(0,o.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:h(Number(e),u)});let f=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(d)))};return(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:u===`USD`?`$`:u}),(0,o.jsx)(i.Input,{...c,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:f,placeholder:l?.placeholder||`0.00`,disabled:r||c.disabled,className:`pl-8 ${s||``}`,step:(10**-d).toFixed(d),"aria-invalid":!!a})]})}function _({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...s}){if(r)return(0,o.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||`-`});let c=n||s.schema,l=c?.rows||4,u=c?.max_length,{inputType:d,...f}=s;return(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(i.Textarea,{...f,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder,disabled:r||f.disabled,rows:l,maxLength:u,"aria-invalid":!!a}),u&&(0,o.jsxs)(`div`,{className:`absolute bottom-2 right-2 text-xs text-gray-400`,"aria-live":`polite`,"aria-label":`Character count: ${(e||``).length} of ${u}`,children:[(e||``).length,`/`,u]})]})}function v({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...s}){if(r)return(0,o.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||`-`});let c=n||s.schema,l=c?.rows||8;return(0,o.jsxs)(`div`,{className:`space-y-2`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,o.jsxs)(`span`,{children:[`Format: `,c?.format||`markdown`]}),(0,o.jsx)(`span`,{className:`italic`,children:`Rich text editor (basic)`})]}),(0,o.jsx)(i.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder||`Enter text...`,disabled:r||s.disabled,rows:l,className:`font-mono text-sm ${s.className||``}`,"aria-invalid":!!a})]})}function y({value:e,onChange:t,field:n,readonly:r,...a}){if(r){if(!e)return(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let t=new Date(e);return(0,o.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:s,...c}=a;return(0,o.jsx)(i.Input,{...c,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),disabled:r||c.disabled})}function b({value:e,onChange:t,field:n,readonly:r,...a}){if(r)return(0,o.jsx)(`span`,{className:`text-sm`,children:e||`-`});let{inputType:s,...c}=a;return(0,o.jsx)(i.Input,{...c,type:`time`,value:e||``,onChange:e=>t(e.target.value),disabled:r||c.disabled})}function x({value:e,onChange:t,field:n,readonly:r,errorMessage:a,className:s,...c}){let l=n||c.schema,u=l?.precision??2;if(r)return e==null?(0,o.jsx)(`span`,{className:`text-sm`,children:`-`}):(0,o.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[(e*100).toFixed(u),`%`]});let d=e==null?``:e*100,f=e==null?0:e*100,p=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:n/100)},m=e=>{if(r||c.disabled)return;if(!Array.isArray(e)||e.length===0){t(null);return}let n=e[0];t(typeof n==`number`?n/100:null)},h=10**-u;return(0,o.jsxs)(`div`,{className:`space-y-2`,children:[(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(i.Input,{...c,type:`number`,value:d,onChange:p,placeholder:l?.placeholder||`0`,disabled:r||c.disabled,className:`pr-8 ${s||``}`,step:(10**-u).toFixed(u),"aria-invalid":!!a}),(0,o.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,o.jsx)(i.Slider,{value:[f],onValueChange:m,min:0,max:100,step:h,disabled:r||c.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}function S({value:e,onChange:t,field:r,readonly:s,className:c,...l}){let[u,d]=(0,n.useState)(!1),f=r||l.schema;if(s)return(0,o.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:p,...m}=l;return(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(i.Input,{...m,type:u?`text`:`password`,value:e||``,onChange:e=>t(e.target.value),placeholder:f?.placeholder,disabled:s||m.disabled,className:`pr-10 ${c||``}`}),(0,o.jsx)(i.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent`,onClick:()=>d(!u),tabIndex:-1,children:u?(0,o.jsx)(a.EyeOff,{className:`size-4 text-gray-500`}):(0,o.jsx)(a.Eye,{className:`size-4 text-gray-500`})})]})}function C({value:e,onChange:t,field:r,readonly:s,...c}){let l=(0,n.useRef)(null),u=r||c.schema,d=u?.multiple||!1,f=u?.accept?u.accept.join(`,`):void 0,p=u?.maxSize,[m,h]=(0,n.useState)(!1),[g,_]=(0,n.useState)([]),v=e?Array.isArray(e)?e:[e]:[],y=(0,n.useCallback)(e=>{if(e.length===0)return;let n=[],r=e.filter(e=>{if(p&&e.size>p){let t=(p/(1024*1024)).toFixed(1);return n.push(`"${e.name}" exceeds max size (${t} MB)`),!1}return!0});if(_(n),r.length===0)return;let i=r.map(e=>({name:e.name,original_name:e.name,size:e.size,mime_type:e.type,url:URL.createObjectURL(e)}));t(d?[...v,...i]:i[0])},[v,d,t,p]),b=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),h(!0)},[]),x=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),h(!1)},[]),S=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),h(!1);let t=Array.from(e.dataTransfer.files);if(f){let e=f.split(`,`).map(e=>e.trim().toLowerCase());y(t.filter(t=>{let n=t.name.split(`.`),r=n.length>1?`.`+n.pop()?.toLowerCase():``;return e.some(e=>e===t.type||r&&e===r||e.endsWith(`/*`)&&t.type.startsWith(e.replace(`/*`,`/`)))}))}else y(t)},[f,y]);if(s)return e?(0,o.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,o.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let C=e=>{y(Array.from(e.target.files||[]))},w=e=>{if(d){let n=v.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},T=e=>(e.mime_type||``).startsWith(`image/`);return(0,o.jsxs)(`div`,{className:c.className,children:[(0,o.jsx)(`input`,{ref:l,type:`file`,multiple:d,accept:f,onChange:C,className:`hidden`}),(0,o.jsxs)(`div`,{className:`space-y-2`,children:[(0,o.jsxs)(`div`,{onDragOver:b,onDragLeave:x,onDrop:S,onClick:()=>l.current?.click(),className:`
|
|
7
2
|
flex flex-col items-center justify-center gap-2 p-6
|
|
8
3
|
border-2 border-dashed rounded-lg cursor-pointer
|
|
9
4
|
transition-colors duration-200
|
|
10
|
-
${
|
|
11
|
-
`,role
|
|
5
|
+
${m?`border-primary bg-primary/5 text-primary`:`border-muted-foreground/25 hover:border-primary/50 text-muted-foreground hover:text-foreground`}
|
|
6
|
+
`,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),l.current?.click())},children:[(0,o.jsx)(a.Upload,{className:`size-8 ${m?`text-primary`:`text-muted-foreground`}`}),(0,o.jsxs)(`div`,{className:`text-center`,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium`,children:m?`Drop files here`:`Drag & drop files here`}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`or click to browse`})]})]}),g.length>0&&(0,o.jsx)(`div`,{className:`space-y-0.5`,children:g.map((e,t)=>(0,o.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),v.length>0&&(0,o.jsx)(`div`,{className:`space-y-1`,children:v.map((e,t)=>(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[T(e)&&e.url?(0,o.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded flex-shrink-0`}):T(e)?(0,o.jsx)(a.ImageIcon,{className:`size-4 text-muted-foreground flex-shrink-0`}):(0,o.jsx)(a.File,{className:`size-4 text-muted-foreground flex-shrink-0`}),(0,o.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,o.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,o.jsx)(i.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),w(t)},className:`h-6 w-6 p-0`,children:(0,o.jsx)(a.X,{className:`size-3`})})]},t))})]})]})}function w({value:e,onChange:t,field:r,readonly:s,...c}){let l=(0,n.useRef)(null),u=r||c.schema,d=u?.multiple||!1,f=u?.accept?u.accept.join(`,`):`image/*`;if(s)return e?(0,o.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,o.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let p=e?Array.isArray(e)?e:[e]:[],m=e=>{let n=Array.from(e.target.files||[]);if(n.length===0)return;let r=n.map(e=>({name:e.name,original_name:e.name,size:e.size,mime_type:e.type,url:URL.createObjectURL(e)}));t(d?[...p,...r]:r[0])},h=e=>{if(d){let n=p.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,o.jsxs)(`div`,{className:c.className,children:[(0,o.jsx)(`input`,{ref:l,type:`file`,multiple:d,accept:f,onChange:m,className:`hidden`}),(0,o.jsxs)(`div`,{className:`space-y-2`,children:[p.length>0&&(0,o.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:p.map((e,t)=>(0,o.jsxs)(`div`,{className:`relative group`,children:[(0,o.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,o.jsx)(i.Button,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>h(t),className:`absolute top-1 right-1 h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,o.jsx)(a.X,{className:`size-3`})})]},t))}),(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,onClick:()=>l.current?.click(),className:`w-full`,children:[(0,o.jsx)(a.Image,{className:`size-4 mr-2`}),p.length>0?`Add More Images`:`Upload Image`]})]})]})}function T({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,c=e&&typeof e==`object`?`${e.latitude||0}, ${e.longitude||0}`:``;return r?(0,o.jsx)(`span`,{className:`text-sm`,children:c||`-`}):(0,o.jsx)(i.Input,{type:`text`,value:c,onChange:e=>{let n=e.target.value;if(!n.trim()){t(null);return}let r=n.split(`,`).map(e=>e.trim());if(r.length===2){let e=parseFloat(r[0]),n=parseFloat(r[1]);!isNaN(e)&&!isNaN(n)&&t({latitude:e,longitude:n})}},placeholder:s?.placeholder||`latitude, longitude`,disabled:r||a.disabled,className:a.className})}function E({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`,i=`-`;return e!=null&&(i=r===`number`||r===`currency`?typeof e==`number`?e.toFixed(2):String(e):r===`boolean`?e?`Yes`:`No`:r===`date`?new Date(e).toLocaleDateString():String(e)),(0,o.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}function D({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`,i=`-`;return e!=null&&(i=r===`count`?String(e):[`sum`,`avg`,`min`,`max`].includes(r)&&typeof e==`number`?e.toFixed(2):String(e)),(0,o.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}function O({value:e,field:t,...n}){let r=e==null?`-`:String(e);return(0,o.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:r})}function k({value:e,onChange:t,field:n,readonly:r,...s}){let c=(n||s.schema)?.multiple||!1;if(r){if(!e)return(0,o.jsx)(`span`,{className:`text-sm`,children:`-`});let t=Array.isArray(e)?e:[e];return(0,o.jsxs)(`div`,{className:`flex -space-x-2`,children:[t.slice(0,3).map((e,t)=>{let n=e.name||e.username||`User`;return(0,o.jsx)(i.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,o.jsx)(i.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),t.length>3&&(0,o.jsx)(i.Avatar,{className:`size-8 border-2 border-white`,children:(0,o.jsxs)(i.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,t.length-3]})})]})}let l=e?Array.isArray(e)?e:[e]:[],u=e=>{if(c){let n=l.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,o.jsxs)(`div`,{className:s.className,children:[l.length>0&&(0,o.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:l.map((e,t)=>{let n=e.name||e.username||`User`;return(0,o.jsxs)(i.Badge,{variant:`outline`,className:`gap-2 pr-1`,children:[(0,o.jsx)(i.Avatar,{className:`size-5`,children:(0,o.jsx)(i.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,o.jsx)(`span`,{className:`text-sm`,children:n}),(0,o.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`ml-1 rounded-full hover:bg-gray-200 p-0.5`,children:(0,o.jsx)(a.X,{className:`size-3`})})]},t)})}),(0,o.jsx)(`div`,{className:`text-sm text-gray-500 italic`,children:`User selection component requires integration with user management system`})]})}function A({value:e,onChange:t,field:r,readonly:a,...s}){let c=r||s.schema,[l,u]=(0,n.useState)(()=>e==null?``:JSON.stringify(e,null,2)),[d,f]=(0,n.useState)(null);return(0,n.useEffect)(()=>{try{if(e==null){u(``);return}let t=l?JSON.parse(l):null;JSON.stringify(t)!==JSON.stringify(e)&&u(JSON.stringify(e,null,2))}catch{u(JSON.stringify(e,null,2))}},[e,l]),a?e?(0,o.jsx)(`pre`,{className:(0,i.cn)(`text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40`,s.className),children:JSON.stringify(e,null,2)}):(0,o.jsx)(`span`,{className:`text-sm`,children:`-`}):(0,o.jsxs)(`div`,{className:`space-y-1`,children:[(0,o.jsx)(i.Textarea,{value:l,onChange:e=>{let n=e.target.value;if(u(n),f(null),!n.trim()){t(null);return}try{t(JSON.parse(n))}catch{f(`Invalid JSON`)}},placeholder:c?.placeholder||`{
|
|
12
7
|
"key": "value"
|
|
13
|
-
}`,disabled:l||n.disabled,className:d.cn("font-mono text-xs",f?"border-red-500 focus-visible:ring-red-500":"",n.className),rows:6}),f&&t.jsx("p",{className:"text-xs text-red-500",children:f})]})}const Xt=Object.freeze(Object.defineProperty({__proto__:null,ObjectField:De},Symbol.toStringTag,{value:"Module"}));function ze({value:e,field:r,...s}){const n=(r||s.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return t.jsx("span",{className:"text-sm text-gray-500",children:"-"});const a=e.slice(0,3).map(i=>{const o=Number(i);return isNaN(o)?"0":o.toFixed(4)}).join(", ");return t.jsxs("div",{className:`text-sm ${s.className||""}`,children:[t.jsxs("span",{className:"font-mono text-gray-700",children:["[",a,"...]"]}),t.jsxs("span",{className:"text-gray-500 ml-2",children:["(",n,"D)"]})]})}const Ht=Object.freeze(Object.defineProperty({__proto__:null,VectorField:ze},Symbol.toStringTag,{value:"Module"}));function Me({value:e,field:r,readonly:s,...l}){const a=(r||l.schema)?.columns||[];return!e||!Array.isArray(e)?t.jsx("span",{className:"text-sm text-muted-foreground",children:"-"}):s?t.jsx("div",{className:d.cn("text-sm",l.className),children:t.jsxs("span",{className:"text-foreground",children:[e.length," rows"]})}):t.jsxs("div",{className:d.cn("border border-border rounded-lg overflow-hidden",l.className),children:[t.jsx("div",{className:"overflow-auto max-h-60",children:t.jsxs("table",{className:"w-full text-sm",children:[t.jsx("thead",{className:"bg-muted border-b border-border",children:t.jsx("tr",{children:a.map((i,o)=>t.jsx("th",{className:"px-3 py-2 text-left text-xs font-medium text-muted-foreground",children:i.label||i.name},o))})}),t.jsx("tbody",{className:"divide-y divide-border",children:e.slice(0,5).map((i,o)=>t.jsx("tr",{className:"hover:bg-muted/50 transition-colors",children:a.map((c,f)=>t.jsx("td",{className:"px-3 py-2 text-foreground",children:i[c.name]!=null?String(i[c.name]):"-"},f))},o))})]})}),e.length>5&&t.jsxs("div",{className:"bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border",children:["Showing 5 of ",e.length," rows"]})]})}const Kt=Object.freeze(Object.defineProperty({__proto__:null,GridField:Me},Symbol.toStringTag,{value:"Module"}));function Ie({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema;return l?t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"w-6 h-6 rounded border border-input",style:{backgroundColor:e||"#000000"}}),t.jsx("span",{className:"text-sm",children:e||"-"})]}):t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("input",{type:"color",value:e||"#000000",onChange:i=>r(i.target.value),disabled:l||n.disabled,className:"w-10 h-10 rounded border border-input cursor-pointer"}),t.jsx(d.Input,{type:"text",value:e||"",onChange:i=>r(i.target.value),placeholder:a?.placeholder||"#000000",disabled:l||n.disabled,className:n.className,pattern:"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"})]})}const Zt=Object.freeze(Object.defineProperty({__proto__:null,ColorField:Ie},Symbol.toStringTag,{value:"Module"}));function Le({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema,i=a?.min??0,o=a?.max??100,c=a?.step??1;return l?t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:"text-sm font-medium",children:e??i}),t.jsxs("span",{className:"text-xs text-muted-foreground",children:["/ ",o]})]}):t.jsxs("div",{className:"flex items-center gap-4",children:[t.jsx(d.Slider,{value:[e??i],onValueChange:f=>r(f[0]),min:i,max:o,step:c,disabled:l||n.disabled,className:n.className}),t.jsx("span",{className:"text-sm font-medium w-12 text-right",children:e??i})]})}const er=Object.freeze(Object.defineProperty({__proto__:null,SliderField:Le},Symbol.toStringTag,{value:"Module"}));function Ue({value:e,onChange:r,field:s,readonly:l,className:n,...a}){const o=(s||a.schema)?.max??5,c=e??0,[f,g]=j.useState(null),p=f!==null?f:c;return l?t.jsxs("div",{className:d.cn("flex items-center gap-1",n),children:[Array.from({length:o},(m,x)=>t.jsx(S.Star,{className:`w-5 h-5 ${x<c?"fill-yellow-400 text-yellow-400":"text-muted-foreground"}`},x)),t.jsxs("span",{className:"ml-2 text-sm text-muted-foreground",children:[c," / ",o]})]}):t.jsxs("div",{className:d.cn("flex items-center gap-1",n),children:[Array.from({length:o},(m,x)=>t.jsx("button",{type:"button",onClick:()=>r(x+1),onMouseEnter:()=>g(x+1),onMouseLeave:()=>g(null),className:"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded",disabled:l||a.disabled,children:t.jsx(S.Star,{className:`w-5 h-5 transition-colors ${x<p?"fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500":"text-muted-foreground hover:text-yellow-400"}`})},x)),t.jsxs("span",{className:"ml-2 text-sm text-muted-foreground",children:[c," / ",o]})]})}const tr=Object.freeze(Object.defineProperty({__proto__:null,RatingField:Ue},Symbol.toStringTag,{value:"Module"}));function Be({value:e,onChange:r,field:s,readonly:l,...n}){const a=s||n.schema,i=a?.language??"javascript";return l?t.jsx("pre",{className:d.cn("text-sm bg-muted p-2 rounded overflow-x-auto border",n.className),children:t.jsx("code",{children:e||"-"})}):t.jsx(d.Textarea,{value:e||"",onChange:o=>r(o.target.value),placeholder:a?.placeholder||`// Write ${i} code here...`,disabled:l||n.disabled,className:d.cn("font-mono text-sm",n.className),rows:12,spellCheck:!1})}const rr=Object.freeze(Object.defineProperty({__proto__:null,CodeField:Be},Symbol.toStringTag,{value:"Module"}));function Ve({value:e,onChange:r,field:s,readonly:l,...n}){const[a,i]=j.useState(!1),o=j.useRef(null),c=s||n.schema,f=m=>{const x=m.target.files?.[0];if(!x)return;if(!x.type.startsWith("image/")){console.error("Please select an image file");return}if(x.size>5*1024*1024){console.error("File size must be less than 5MB");return}const b=new FileReader;b.onloadend=()=>{r(b.result)},b.readAsDataURL(x)},g=()=>{r("")},p=()=>(c?.defaultName||c?.label||"User").split(" ").map(x=>x[0]).join("").toUpperCase().slice(0,2);return l?t.jsxs(d.Avatar,{className:"w-16 h-16",children:[e&&t.jsx(d.AvatarImage,{src:e,alt:c?.label}),t.jsx(d.AvatarFallback,{children:p()})]}):t.jsxs("div",{className:"flex items-center gap-4",children:[t.jsxs("div",{className:"relative",onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[t.jsxs(d.Avatar,{className:"w-16 h-16",children:[e&&t.jsx(d.AvatarImage,{src:e,alt:c?.label}),t.jsx(d.AvatarFallback,{children:p()})]}),!l&&a&&e&&t.jsx("button",{type:"button",onClick:g,className:"absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90",children:t.jsx(S.X,{className:"w-3 h-3"})})]}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("input",{ref:o,type:"file",accept:"image/*",onChange:f,className:"hidden"}),t.jsxs(d.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>o.current?.click(),disabled:l||n.disabled,children:[t.jsx(S.Upload,{className:"w-4 h-4 mr-2"}),e?"Change":"Upload"," Avatar"]}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"PNG, JPG up to 5MB"})]})]})}const sr=Object.freeze(Object.defineProperty({__proto__:null,AvatarField:Ve},Symbol.toStringTag,{value:"Module"}));function Ye({value:e,onChange:r,field:s,readonly:l,...n}){const a=e||{},i=(c,f)=>{r({...a,[c]:f})},o=c=>[c.street,c.city,[c.state,c.zipCode].filter(Boolean).join(" "),c.country].filter(Boolean).join(", ")||"-";return l?t.jsx("span",{className:"text-sm",children:o(a)}):t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"street",className:"text-xs",children:"Street Address"}),t.jsx(d.Input,{id:"street",type:"text",value:a.street||"",onChange:c=>i("street",c.target.value),placeholder:"123 Main St",disabled:l||n.disabled,className:n.className})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"city",className:"text-xs",children:"City"}),t.jsx(d.Input,{id:"city",type:"text",value:a.city||"",onChange:c=>i("city",c.target.value),placeholder:"San Francisco",disabled:l||n.disabled})]}),t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"state",className:"text-xs",children:"State / Province"}),t.jsx(d.Input,{id:"state",type:"text",value:a.state||"",onChange:c=>i("state",c.target.value),placeholder:"CA",disabled:l||n.disabled})]})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"zipCode",className:"text-xs",children:"ZIP / Postal Code"}),t.jsx(d.Input,{id:"zipCode",type:"text",value:a.zipCode||"",onChange:c=>i("zipCode",c.target.value),placeholder:"94102",disabled:l||n.disabled})]}),t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"country",className:"text-xs",children:"Country"}),t.jsx(d.Input,{id:"country",type:"text",value:a.country||"",onChange:c=>i("country",c.target.value),placeholder:"United States",disabled:l||n.disabled})]})]})]})}const nr=Object.freeze(Object.defineProperty({__proto__:null,AddressField:Ye},Symbol.toStringTag,{value:"Module"}));function qe({value:e,onChange:r,field:s,readonly:l,...n}){const[a,i]=j.useState(!1),o=e||{},c=(m,x)=>{r({...o,[m]:x?Number(x):void 0})},f=()=>{if(!navigator.geolocation){console.error("Geolocation is not supported by this browser");return}i(!0),navigator.geolocation.getCurrentPosition(m=>{r({latitude:m.coords.latitude,longitude:m.coords.longitude,accuracy:m.coords.accuracy}),i(!1)},m=>{console.error("Error getting location:",m.message),i(!1)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},g=m=>!m.latitude||!m.longitude?"-":`${m.latitude.toFixed(6)}, ${m.longitude.toFixed(6)}`,p=()=>{if(!o.latitude||!o.longitude)return;const m=`https://www.google.com/maps?q=${o.latitude},${o.longitude}`;window.open(m,"_blank")};return l?t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(S.MapPin,{className:"w-4 h-4 text-muted-foreground"}),t.jsx("span",{className:"text-sm",children:g(o)}),o.latitude&&o.longitude&&t.jsx(d.Button,{type:"button",variant:"link",size:"sm",onClick:p,className:"p-0 h-auto",children:"View on map"})]}):t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs(d.Button,{type:"button",variant:"outline",size:"sm",onClick:f,disabled:l||a,children:[t.jsx(S.Crosshair,{className:"w-4 h-4 mr-2"}),a?"Getting location...":"Use Current Location"]}),o.latitude&&o.longitude&&t.jsxs(d.Button,{type:"button",variant:"link",size:"sm",onClick:p,children:[t.jsx(S.MapPin,{className:"w-4 h-4 mr-2"}),"View on map"]})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"latitude",className:"text-xs",children:"Latitude"}),t.jsx(d.Input,{id:"latitude",type:"number",value:o.latitude??"",onChange:m=>c("latitude",m.target.value),placeholder:"37.7749",disabled:l||n.disabled,step:"any",className:n.className})]}),t.jsxs("div",{children:[t.jsx(d.Label,{htmlFor:"longitude",className:"text-xs",children:"Longitude"}),t.jsx(d.Input,{id:"longitude",type:"number",value:o.longitude??"",onChange:m=>c("longitude",m.target.value),placeholder:"-122.4194",disabled:l||n.disabled,step:"any"})]})]}),o.accuracy&&t.jsxs("p",{className:"text-xs text-muted-foreground",children:["Accuracy: ±",o.accuracy.toFixed(0),"m"]})]})}const ar=Object.freeze(Object.defineProperty({__proto__:null,GeolocationField:qe},Symbol.toStringTag,{value:"Module"}));function Ge({value:e,onChange:r,readonly:s}){const l=j.useRef(null),[n,a]=j.useState(!1),[i,o]=j.useState(!e);j.useEffect(()=>{if(e&&l.current){const x=l.current.getContext("2d");if(x){const b=new Image;b.onload=()=>{x.drawImage(b,0,0),o(!1)},b.src=e}}},[e]);const c=m=>{if(s)return;a(!0),o(!1);const x=l.current;if(!x)return;const b=x.getContext("2d");if(!b)return;const C=x.getBoundingClientRect(),A="touches"in m?m.touches[0].clientX-C.left:m.clientX-C.left,z="touches"in m?m.touches[0].clientY-C.top:m.clientY-C.top;b.beginPath(),b.moveTo(A,z)},f=m=>{if(!n||s)return;const x=l.current;if(!x)return;const b=x.getContext("2d");if(!b)return;const C=x.getBoundingClientRect(),A="touches"in m?m.touches[0].clientX-C.left:m.clientX-C.left,z="touches"in m?m.touches[0].clientY-C.top:m.clientY-C.top;b.lineTo(A,z),b.strokeStyle="#000",b.lineWidth=2,b.lineCap="round",b.lineJoin="round",b.stroke()},g=()=>{if(!n)return;a(!1);const m=l.current;if(!m)return;const x=m.toDataURL("image/png");r(x)},p=()=>{const m=l.current;if(!m)return;const x=m.getContext("2d");x&&(x.clearRect(0,0,m.width,m.height),o(!0),r(""))};return s&&e?t.jsx("div",{className:"border rounded p-2 bg-white",children:t.jsx("img",{src:e,alt:"Signature",loading:"lazy",className:"max-w-full h-auto"})}):s&&!e?t.jsx("span",{className:"text-sm text-muted-foreground",children:"No signature"}):t.jsxs("div",{className:"space-y-2",children:[t.jsx("div",{className:"border rounded bg-white",children:t.jsx("canvas",{ref:l,width:400,height:200,className:"w-full touch-none cursor-crosshair",onMouseDown:c,onMouseMove:f,onMouseUp:g,onMouseLeave:g,onTouchStart:c,onTouchMove:f,onTouchEnd:g})}),t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsx("p",{className:"text-xs text-muted-foreground",children:i?"Sign above":"Signature captured"}),t.jsxs(d.Button,{type:"button",variant:"outline",size:"sm",onClick:p,disabled:s||i,children:[t.jsx(S.Eraser,{className:"w-4 h-4 mr-2"}),"Clear"]})]})]})}const lr=Object.freeze(Object.defineProperty({__proto__:null,SignatureField:Ge},Symbol.toStringTag,{value:"Module"}));function Je({value:e,onChange:r,field:s,readonly:l,...n}){const[a,i]=j.useState(!1),o=s||n.schema,c=g=>`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(g)}`,f=()=>{e&&navigator.clipboard.writeText(e)};return l?t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("span",{className:"text-sm flex-1 truncate",children:e||"-"}),e&&t.jsxs(d.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!a),children:[t.jsx(S.QrCode,{className:"w-4 h-4 mr-2"}),a?"Hide":"Show"," QR"]})]}):t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(d.Input,{type:"text",value:e||"",onChange:g=>r(g.target.value),placeholder:o?.placeholder||"Enter text for QR code",disabled:l||n.disabled,className:n.className}),e&&t.jsxs(t.Fragment,{children:[t.jsx(d.Button,{type:"button",variant:"outline",size:"sm",onClick:f,children:t.jsx(S.Copy,{className:"w-4 h-4"})}),t.jsx(d.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!a),children:t.jsx(S.QrCode,{className:"w-4 h-4"})})]})]}),a&&e&&t.jsx("div",{className:"border rounded p-4 bg-white flex justify-center",children:t.jsx("img",{src:c(e),alt:"QR Code",className:"w-48 h-48"})}),e&&t.jsxs("p",{className:"text-xs text-muted-foreground",children:["QR code contains: ",e.length," characters"]})]})}const ir=Object.freeze(Object.defineProperty({__proto__:null,QRCodeField:Je},Symbol.toStringTag,{value:"Module"}));function We({value:e,onChange:r,field:s,readonly:l,className:n,...a}){const i=e||[],o=s||a.schema,c=()=>{const p={id:`new-${Date.now()}`,label:"New Related Record"};r([...i,p])},f=p=>{r(i.filter(m=>m.id!==p))},g=p=>{console.log("View detail:",p)};return l?t.jsxs("div",{className:d.cn("space-y-2",n),children:[i.length===0?t.jsx("span",{className:"text-sm text-muted-foreground",children:"No related records"}):i.map(p=>t.jsxs("div",{className:"flex items-center justify-between p-2 border rounded hover:bg-muted/50",children:[t.jsx("span",{className:"text-sm",children:p.label}),t.jsx(d.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>g(p),children:t.jsx(S.ExternalLink,{className:"w-4 h-4"})})]},p.id)),t.jsxs("p",{className:"text-xs text-muted-foreground",children:[i.length," ",i.length===1?"record":"records"]})]}):t.jsxs("div",{className:d.cn("space-y-3",n),children:[t.jsxs("div",{className:"space-y-2",children:[i.map(p=>t.jsxs("div",{className:"flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50",children:[t.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[t.jsx(d.Badge,{variant:"outline",children:p.id}),t.jsx("span",{className:"text-sm flex-1",children:p.label})]}),t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(d.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>g(p),children:t.jsx(S.ExternalLink,{className:"w-4 h-4"})}),t.jsx(d.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>f(p.id),disabled:a.disabled,children:t.jsx(S.X,{className:"w-4 h-4"})})]})]},p.id)),i.length===0&&t.jsx("div",{className:"text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20",children:"No related records"})]}),t.jsxs(d.Button,{type:"button",variant:"outline",className:"w-full",onClick:c,disabled:a.disabled,children:[t.jsx(S.Plus,{className:"w-4 h-4 mr-2"}),"Add ",o?.label||"Record"]})]})}const or=Object.freeze(Object.defineProperty({__proto__:null,MasterDetailField:We},Symbol.toStringTag,{value:"Module"}));function U(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(r=>{if(r!=null&&typeof r=="object"){const s=r;return String(s.name||s.label||s.id||s._id||"[Object]")}return String(r)}).join(", ");if(typeof e=="object"){const r=e;return"$numberDecimal"in r?Number(r.$numberDecimal):"$oid"in r?String(r.$oid):"$date"in r?String(r.$date):String(r.name||r.label||r.id||r._id||"[Object]")}return String(e)}function st(e,r="USD"){try{return new Intl.NumberFormat("en-US",{style:"currency",currency:r}).format(e)}catch{return`${r} ${e.toFixed(2)}`}}function cr(e,r="USD"){try{return new Intl.NumberFormat("en-US",{style:"currency",currency:r,notation:"compact",maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,"")}catch{return`${r} ${e}`}}function nt(e,r=0){return`${(e>-1&&e<1?e*100:e).toFixed(r)}%`}function de(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,r=>r.toUpperCase())}function at(e){if(!e)return"-";const r=typeof e=="string"?new Date(e):e;if(isNaN(r.getTime()))return"-";const s=new Date,l=new Date(s.getFullYear(),s.getMonth(),s.getDate()),a=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime()-l.getTime(),i=Math.round(a/(1e3*60*60*24));if(i===0)return"Today";if(i===1)return"Tomorrow";if(i===-1)return"Yesterday";if(i<-1){const o=Math.abs(i);return o<=7?`Overdue ${o}d`:ue(r)}return i>1&&i<=7?`In ${i} days`:ue(r)}function ue(e,r){if(!e)return"-";const s=typeof e=="string"?new Date(e):e;if(isNaN(s.getTime()))return"-";if(r==="short"){const l=s.toLocaleDateString("en-US",{month:"short"}),n=s.getDate(),a=String(s.getFullYear()).slice(-2);return`${l} ${n}, '${a}`}return r==="relative"?at(s):s.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function dr(e){if(!e)return"-";const r=typeof e=="string"?new Date(e):e;return isNaN(r.getTime())?"-":r.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function q({value:e}){const r=U(e);return t.jsx("span",{className:"truncate",children:r!=null&&r!==""?String(r):"-"})}function lt({value:e,field:r}){if(e==null)return t.jsx("span",{className:"text-muted-foreground",children:"-"});const s=U(e),n=r.precision??0,a=Number(s),i=isNaN(a)?String(s):new Intl.NumberFormat("en-US",{minimumFractionDigits:n,maximumFractionDigits:n}).format(a);return t.jsx("span",{className:"tabular-nums",children:i})}function it({value:e,field:r}){if(e==null)return t.jsx("span",{className:"text-muted-foreground",children:"-"});const s=U(e),n=r.currency||"USD",a=Number(s),i=isNaN(a)?String(s):st(a,n);return t.jsx("span",{className:"tabular-nums font-medium whitespace-nowrap",children:i})}const ur=/progress|completion/;function ot({value:e,field:r}){if(e==null)return t.jsx("span",{className:"text-muted-foreground",children:"-"});const s=U(e),n=r.precision??0,a=Number(s);if(isNaN(a))return t.jsx("span",{className:"tabular-nums whitespace-nowrap",children:String(s)});const i=ur.test(r?.name?.toLowerCase()||""),o=i?a:a>-1&&a<1?a*100:a,c=i?`${a.toFixed(n)}%`:nt(a,n),f=Math.max(0,Math.min(100,o));return t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"h-1.5 w-16 rounded-full bg-muted overflow-hidden flex-shrink-0",role:"progressbar","aria-valuenow":f,"aria-valuemin":0,"aria-valuemax":100,children:t.jsx("div",{className:"h-full rounded-full bg-primary transition-all",style:{width:`${f}%`}})}),t.jsx("span",{className:"tabular-nums whitespace-nowrap",children:c})]})}const mr=new Set(["active","is_active","enabled","is_enabled","verified","is_verified"]);function ct({value:e,field:r}){if(e==null)return t.jsx("span",{className:"text-muted-foreground/50 text-xs italic flex items-center justify-center",children:"—"});const s=r?.name?.toLowerCase()||"";return s==="completed"||s==="is_completed"||s==="done"||s==="is_done"?t.jsx("div",{className:"flex items-center justify-center",children:e?t.jsx("div",{className:"size-5 rounded-full bg-green-500 flex items-center justify-center",role:"img","aria-label":"Completed","data-testid":"completion-indicator",children:t.jsx(S.Check,{className:"size-3 text-white"})}):t.jsx("div",{className:"size-5 rounded-full border-2 border-muted-foreground/30",role:"img","aria-label":"Not completed","data-testid":"completion-indicator"})}):mr.has(s)&&!e?t.jsxs(d.Badge,{variant:"destructive",className:"text-xs","data-testid":"boolean-warning-badge",children:[r?.label||de(s)," — Off"]}):t.jsx("div",{className:"flex items-center justify-center",children:t.jsx(d.Checkbox,{checked:!!e,disabled:!0,className:"pointer-events-none"})})}function dt({value:e,field:r}){if(!e)return t.jsx("span",{className:"text-muted-foreground",children:"-"});const s=U(e),n=r.format||"relative",a=ue(s,n),i=typeof s=="string"?new Date(s):s,o=i instanceof Date&&!isNaN(i.getTime()),c=new Date;c.setHours(0,0,0,0);const f=o&&i<c,g=o?i.toISOString():String(s);return t.jsx("span",{className:`tabular-nums${f?" text-red-600":""}`,title:g,children:a})}function ut({value:e}){if(!e)return t.jsx("span",{className:"text-muted-foreground",children:"-"});const r=U(e),s=typeof r=="string"?new Date(r):r;if(!(s instanceof Date)||isNaN(s.getTime()))return t.jsx("span",{className:"text-muted-foreground",children:"-"});const l=s.toLocaleDateString(void 0,{month:"numeric",day:"numeric",year:"numeric"}),n=s.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase();return t.jsxs("span",{className:"tabular-nums text-sm whitespace-nowrap",children:[t.jsx("span",{children:l}),t.jsx("span",{className:"ml-2 text-muted-foreground",children:n})]})}const fr={critical:"red",urgent:"red",high:"orange",medium:"yellow",normal:"blue",low:"gray",none:"gray",paid:"green",completed:"green",done:"green",active:"green",approved:"green",resolved:"green",pending:"yellow",waiting:"yellow",on_hold:"yellow",shipped:"blue",in_progress:"blue",open:"blue",processing:"blue",draft:"gray",new:"gray",inactive:"gray",closed:"gray",cancelled:"red",canceled:"red",rejected:"red",failed:"red",overdue:"red",delivered:"purple",archived:"indigo"},pr={gray:"bg-gray-100 text-gray-800 border-gray-300",red:"bg-red-100 text-red-800 border-red-300",orange:"bg-orange-100 text-orange-800 border-orange-300",yellow:"bg-yellow-100 text-yellow-800 border-yellow-300",green:"bg-green-100 text-green-800 border-green-300",blue:"bg-blue-100 text-blue-800 border-blue-300",indigo:"bg-indigo-100 text-indigo-800 border-indigo-300",purple:"bg-purple-100 text-purple-800 border-purple-300",pink:"bg-pink-100 text-pink-800 border-pink-300"};function tt(e,r){const s=e||(r?fr[String(r).toLowerCase().replace(/[\s-]/g,"_")]:void 0);return pr[s||""]||"bg-muted text-muted-foreground border-border"}function ne({value:e,field:r}){const l=r.options||[];if(!e)return t.jsx("span",{children:"-"});if(Array.isArray(e))return t.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((o,c)=>{const f=l.find(m=>m.value===o),g=f?.label||de(String(o)),p=tt(f?.color,o);return t.jsx(d.Badge,{variant:"outline",className:p,children:g},c)})});const n=l.find(o=>o.value===e),a=n?.label||de(String(e)),i=tt(n?.color,e);return t.jsx(d.Badge,{variant:"outline",className:i,children:a})}function mt({value:e}){if(!e)return t.jsx("span",{children:"-"});const r=String(U(e)??""),[s,l]=j.useState(!1),n=a=>{a.stopPropagation(),a.preventDefault(),navigator.clipboard.writeText(r).then(()=>{l(!0),setTimeout(()=>l(!1),2e3)}).catch(()=>{})};return t.jsxs("span",{className:"inline-flex items-center gap-1 group/email",children:[t.jsx(d.Button,{variant:"link",className:"p-0 h-auto font-normal text-blue-600 hover:text-blue-800",asChild:!0,children:t.jsx("a",{href:`mailto:${r}`,onClick:a=>a.stopPropagation(),children:r})}),t.jsx("button",{type:"button",className:"opacity-0 group-hover/email:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted",onClick:n,"aria-label":"Copy email",children:s?t.jsx(S.Check,{className:"h-3 w-3 text-green-600"}):t.jsx(S.Copy,{className:"h-3 w-3 text-muted-foreground"})})]})}function ft({value:e}){if(!e)return t.jsx("span",{children:"-"});const r=String(U(e)??"");return t.jsx(d.Button,{variant:"link",className:"p-0 h-auto font-normal text-blue-600 hover:text-blue-800",asChild:!0,children:t.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",onClick:s=>s.stopPropagation(),children:r})})}function pt({value:e}){if(!e)return t.jsx("span",{children:"-"});const r=String(U(e)??""),[s,l]=j.useState(!1),n=a=>{a.stopPropagation(),a.preventDefault(),navigator.clipboard.writeText(r).then(()=>{l(!0),setTimeout(()=>l(!1),2e3)}).catch(()=>{})};return t.jsxs("span",{className:"inline-flex items-center gap-1 group/phone",children:[t.jsxs("a",{href:`tel:${r}`,className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800",onClick:a=>a.stopPropagation(),children:[t.jsx(S.Phone,{className:"h-3 w-3"}),r]}),t.jsx("button",{type:"button",className:"opacity-0 group-hover/phone:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted",onClick:n,"aria-label":"Copy phone number",children:s?t.jsx(S.Check,{className:"h-3 w-3 text-green-600"}):t.jsx(S.Copy,{className:"h-3 w-3 text-muted-foreground"})})]})}function xt({value:e,field:r}){if(!e)return t.jsx("span",{children:"-"});if(r.multiple,Array.isArray(e)){const n=e.length;return t.jsxs("span",{className:"text-sm text-gray-600",children:[n," ",n===1?"file":"files"]})}const l=e.name||e.original_name||"File";return t.jsx("span",{className:"text-sm truncate",children:l})}function gt({value:e}){return e?Array.isArray(e)?t.jsxs("div",{className:"flex -space-x-2",children:[e.slice(0,3).map((r,s)=>t.jsx("img",{src:r.url||"",alt:r.name||`Image ${s+1}`,className:"size-8 rounded-md border-2 border-white object-cover"},s)),e.length>3&&t.jsxs("div",{className:"size-8 rounded-md border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-medium text-gray-600",children:["+",e.length-3]})]}):t.jsx("img",{src:e.url||"",alt:e.name||"Image",className:"size-10 rounded-md object-cover"}):t.jsx("span",{children:"-"})}function ae({value:e,field:r}){if(e==null||e==="")return t.jsx("span",{children:"-"});const s=r.options||[],l=n=>{if(s.length>0){const a=s.find(i=>String(i.value)===String(n));if(a)return a.label}return String(n)};if(Array.isArray(e))return t.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((n,a)=>{let i;return n!=null&&typeof n=="object"?i=n.name||n.label||n.id||n._id||String(n):i=l(n),t.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-100 text-gray-800",children:i},a)})});if(typeof e=="object"&&e!==null){const n=e.name||e.label||e.id||e._id||"[Object]";return t.jsx("span",{className:"truncate",children:n})}return t.jsx("span",{className:"truncate",children:l(e)})}function me({value:e}){const r=U(e);return t.jsx("span",{className:"text-gray-700 font-mono text-sm",children:r!=null?String(r):"-"})}function le({value:e}){if(!e)return t.jsx("span",{children:"-"});if(typeof e!="object")return t.jsx("span",{className:"truncate",children:String(e)});if(Array.isArray(e))return t.jsxs("div",{className:"flex -space-x-2",children:[e.slice(0,3).map((l,n)=>{if(typeof l!="object"||l===null)return t.jsx("span",{className:"truncate text-sm",children:String(l)},n);const a=l.name||l.username||"User",i=a.split(" ").map(o=>o[0]).join("").toUpperCase().slice(0,2);return t.jsx(d.Avatar,{className:"size-8 border-2 border-white",title:a,children:t.jsx(d.AvatarFallback,{className:"bg-blue-500 text-white text-xs",children:i})},n)}),e.length>3&&t.jsx(d.Avatar,{className:"size-8 border-2 border-white",children:t.jsxs(d.AvatarFallback,{className:"bg-gray-200 text-gray-600 text-xs",children:["+",e.length-3]})})]});const r=e.name||e.username||"User",s=r.split(" ").map(l=>l[0]).join("").toUpperCase().slice(0,2);return t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(d.Avatar,{className:"size-8",children:t.jsx(d.AvatarFallback,{className:"bg-blue-500 text-white text-xs",children:s})}),t.jsx("span",{className:"truncate",children:r})]})}const fe=new Map;function K(e,r){fe.set(e,r)}function xr(e){return fe.has(e)?fe.get(e):{text:q,textarea:q,markdown:q,html:q,number:lt,currency:it,percent:ot,boolean:ct,date:dt,datetime:ut,time:q,select:ne,status:ne,lookup:ae,master_detail:ae,email:mt,url:ft,phone:pt,file:xt,image:gt,formula:me,summary:me,auto_number:q,user:le,owner:le,password:()=>t.jsx("span",{children:"••••••"}),location:q,object:()=>t.jsx("span",{className:"text-gray-500 italic",children:"[Object]"}),vector:()=>t.jsx("span",{className:"text-gray-500 italic",children:"[Vector]"}),grid:()=>t.jsx("span",{className:"text-gray-500 italic",children:"[Grid]"})}[e]||q}K("lookup",ae);K("master_detail",ae);K("select",ne);K("status",ne);K("user",le);K("owner",le);function gr(e){return{text:"field:text",textarea:"field:textarea",markdown:"field:markdown",html:"field:html",number:"field:number",currency:"field:currency",percent:"field:percent",date:"field:date",datetime:"field:datetime",time:"field:time",boolean:"field:boolean",select:"field:select",lookup:"field:lookup",master_detail:"field:master_detail",email:"field:email",phone:"field:phone",url:"field:url",file:"field:file",image:"field:image",password:"field:password",location:"field:location",formula:"field:formula",summary:"field:summary",auto_number:"field:auto_number"}[e]||"field:text"}function hr(e){if(e<0||!Number.isFinite(e)||e===0)return"0 B";const r=["B","KB","MB","GB","TB"];let s=e,l=0;for(;s>=1024&&l<r.length-1;)s/=1024,l++;return`${s.toFixed(l>0?1:0)} ${r[l]}`}function br(e){const r={};return e.required&&(r.required=typeof e.required_message=="string"?e.required_message:`${e.label||e.name} is required`),e.min_length&&(r.minLength={value:e.min_length,message:e.min_length_message||`Minimum length is ${e.min_length} characters`}),e.max_length&&(r.maxLength={value:e.max_length,message:e.max_length_message||`Maximum length is ${e.max_length} characters`}),e.min!==void 0&&(r.min={value:e.min,message:e.min_message||`Minimum value is ${e.min}`}),e.max!==void 0&&(r.max={value:e.max,message:e.max_message||`Maximum value is ${e.max}`}),e.pattern&&(r.pattern={value:typeof e.pattern=="string"?new RegExp(e.pattern):e.pattern,message:e.pattern_message||"Invalid format"}),e.type==="email"&&(r.pattern={value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:"Please enter a valid email address"}),e.type==="url"&&(r.pattern={value:/^https?:\/\/.+/,message:"Please enter a valid URL"}),e.validate&&(r.validate=e.validate),Object.keys(r).length>0?r:void 0}function pe(e,r){if(!e)return!0;if(e.field&&e.value!==void 0){const s=r[e.field];if(e.operator==="="||e.operator==="==")return s===e.value;if(e.operator==="!=")return s!==e.value;if(e.operator===">")return s>e.value;if(e.operator===">=")return s>=e.value;if(e.operator==="<")return s<e.value;if(e.operator==="<=")return s<=e.value;if(e.operator==="in")return Array.isArray(e.value)&&e.value.includes(s)}return e.and&&Array.isArray(e.and)?e.and.every(s=>pe(s,r)):e.or&&Array.isArray(e.or)?e.or.some(s=>pe(s,r)):!0}function _(e){const r=({schema:s,className:l,value:n,...a})=>{const[i,o]=j.useState(n??s?.value??""),c={name:s?.name||"field",label:s?.label,type:s?.type,placeholder:s?.placeholder,required:s?.required,readonly:s?.readonly||s?.readOnly,help:s?.help,description:s?.description,defaultValue:s?.defaultValue||s?.value,...s},f=j.useCallback(p=>{o(p),a.onChange&&a.onChange(p)},[a]),g=s?.readonly||s?.readOnly||!1;return t.jsxs("div",{className:"grid w-full items-center gap-1.5","data-obj-id":s?.id,"data-obj-type":s?.type,children:[s?.label&&t.jsx("label",{htmlFor:s.id,className:s.required?"after:content-['*'] after:ml-0.5 after:text-red-500":"",children:s.label}),t.jsx(e,{value:i,onChange:f,field:c,readonly:g,className:l}),s?.description&&t.jsx("p",{className:"text-sm text-gray-500",children:s.description})]})};return r.displayName=`FieldRenderer(${e.displayName||e.name||"Component"})`,r}const ht={text:()=>Promise.resolve().then(()=>St).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>Et).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>Ct).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>wt).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>Rt).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>Tt).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>Lt).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>Ut).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>Pt).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>Ot).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>kt).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>$t).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>Bt).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>Vt).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>Ze).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>Ze).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>It).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>or).then(e=>({default:e.MasterDetailField})),file:()=>Promise.resolve().then(()=>Yt).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>qt).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>Gt).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>Jt).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>Wt).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>Qt).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>et).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>et).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>Xt).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>Ht).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>Kt).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>Zt).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>er).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>tr).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>rr).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>sr).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>nr).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>ar).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>lr).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>ir).then(e=>({default:e.QRCodeField}))};function bt(e){const r=ht[e];if(!r){console.warn(`Unknown field type: ${e}`);return}const s=j.lazy(r);v.ComponentRegistry.register(e,s,{namespace:"field"})}function jt(){Object.keys(ht).forEach(e=>{bt(e)})}function jr(){v.ComponentRegistry.register("text",_(xe),{namespace:"field"}),v.ComponentRegistry.register("textarea",_(_e),{namespace:"field"}),v.ComponentRegistry.register("number",_(ge),{namespace:"field"}),v.ComponentRegistry.register("boolean",_(he),{namespace:"field"}),v.ComponentRegistry.register("select",_(be),{namespace:"field"}),v.ComponentRegistry.register("date",_(je),{namespace:"field"}),v.ComponentRegistry.register("datetime",_(Ce),{namespace:"field"}),v.ComponentRegistry.register("time",_(we),{namespace:"field"}),v.ComponentRegistry.register("email",_(ye),{namespace:"field"}),v.ComponentRegistry.register("phone",_(Ne),{namespace:"field"}),v.ComponentRegistry.register("url",_(ve),{namespace:"field"}),v.ComponentRegistry.register("currency",_(Fe),{namespace:"field"}),v.ComponentRegistry.register("percent",_(Re),{namespace:"field"}),v.ComponentRegistry.register("password",_(Te),{namespace:"field"}),v.ComponentRegistry.register("markdown",_(oe),{namespace:"field"}),v.ComponentRegistry.register("html",_(oe),{namespace:"field"}),v.ComponentRegistry.register("lookup",_(Se),{namespace:"field"}),v.ComponentRegistry.register("master_detail",_(We),{namespace:"field"}),v.ComponentRegistry.register("file",_(Pe),{namespace:"field"}),v.ComponentRegistry.register("image",_(Oe),{namespace:"field"}),v.ComponentRegistry.register("location",_(ke),{namespace:"field"}),v.ComponentRegistry.register("formula",_(Ae),{namespace:"field"}),v.ComponentRegistry.register("summary",_($e),{namespace:"field"}),v.ComponentRegistry.register("auto_number",_(Ee),{namespace:"field"}),v.ComponentRegistry.register("user",_(ce),{namespace:"field"}),v.ComponentRegistry.register("owner",_(ce),{namespace:"field"}),v.ComponentRegistry.register("object",_(De),{namespace:"field"}),v.ComponentRegistry.register("vector",_(ze),{namespace:"field"}),v.ComponentRegistry.register("grid",_(Me),{namespace:"field"}),v.ComponentRegistry.register("color",_(Ie),{namespace:"field"}),v.ComponentRegistry.register("slider",_(Le),{namespace:"field"}),v.ComponentRegistry.register("rating",_(Ue),{namespace:"field"}),v.ComponentRegistry.register("code",_(Be),{namespace:"field"}),v.ComponentRegistry.register("avatar",_(Ve),{namespace:"field"}),v.ComponentRegistry.register("address",_(Ye),{namespace:"field"}),v.ComponentRegistry.register("geolocation",_(qe),{namespace:"field"}),v.ComponentRegistry.register("signature",_(Ge),{namespace:"field"}),v.ComponentRegistry.register("qrcode",_(Je),{namespace:"field"})}jt();exports.AddressField=Ye;exports.AutoNumberField=Ee;exports.AvatarField=Ve;exports.BooleanCellRenderer=ct;exports.BooleanField=he;exports.CodeField=Be;exports.ColorField=Ie;exports.CurrencyCellRenderer=it;exports.CurrencyField=Fe;exports.DateCellRenderer=dt;exports.DateField=je;exports.DateTimeCellRenderer=ut;exports.DateTimeField=Ce;exports.EmailCellRenderer=mt;exports.EmailField=ye;exports.FileCellRenderer=xt;exports.FileField=Pe;exports.FormulaCellRenderer=me;exports.FormulaField=Ae;exports.GeolocationField=qe;exports.GridField=Me;exports.ImageCellRenderer=gt;exports.ImageField=Oe;exports.LocationField=ke;exports.LookupCellRenderer=ae;exports.LookupField=Se;exports.MasterDetailField=We;exports.NumberCellRenderer=lt;exports.NumberField=ge;exports.ObjectField=De;exports.PasswordField=Te;exports.PercentCellRenderer=ot;exports.PercentField=Re;exports.PhoneCellRenderer=pt;exports.PhoneField=Ne;exports.QRCodeField=Je;exports.RatingField=Ue;exports.RichTextField=oe;exports.SelectCellRenderer=ne;exports.SelectField=be;exports.SignatureField=Ge;exports.SliderField=Le;exports.SummaryField=$e;exports.TextAreaField=_e;exports.TextCellRenderer=q;exports.TextField=xe;exports.TimeField=we;exports.UrlCellRenderer=ft;exports.UrlField=ve;exports.UserCellRenderer=le;exports.UserField=ce;exports.VectorField=ze;exports.buildValidationRules=br;exports.coerceToSafeValue=U;exports.evaluateCondition=pe;exports.formatCompactCurrency=cr;exports.formatCurrency=st;exports.formatDate=ue;exports.formatDateTime=dr;exports.formatFileSize=hr;exports.formatPercent=nt;exports.formatRelativeDate=at;exports.getCellRenderer=xr;exports.humanizeLabel=de;exports.mapFieldTypeToFormType=gr;exports.registerAllFields=jt;exports.registerField=bt;exports.registerFieldRenderer=K;exports.registerFields=jr;
|
|
8
|
+
}`,disabled:a||s.disabled,className:(0,i.cn)(`font-mono text-xs`,d?`border-red-500 focus-visible:ring-red-500`:``,s.className),rows:6}),d&&(0,o.jsx)(`p`,{className:`text-xs text-red-500`,children:d})]})}function ee({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,o.jsx)(`span`,{className:`text-sm text-gray-500`,children:`-`});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,o.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,o.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,o.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}function te({value:e,field:t,readonly:n,...r}){let a=(t||r.schema)?.columns||[];return!e||!Array.isArray(e)?(0,o.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`-`}):n?(0,o.jsx)(`div`,{className:(0,i.cn)(`text-sm`,r.className),children:(0,o.jsxs)(`span`,{className:`text-foreground`,children:[e.length,` rows`]})}):(0,o.jsxs)(`div`,{className:(0,i.cn)(`border border-border rounded-lg overflow-hidden`,r.className),children:[(0,o.jsx)(`div`,{className:`overflow-auto max-h-60`,children:(0,o.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,o.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,o.jsx)(`tr`,{children:a.map((e,t)=>(0,o.jsx)(`th`,{className:`px-3 py-2 text-left text-xs font-medium text-muted-foreground`,children:e.label||e.name},t))})}),(0,o.jsx)(`tbody`,{className:`divide-y divide-border`,children:e.slice(0,5).map((e,t)=>(0,o.jsx)(`tr`,{className:`hover:bg-muted/50 transition-colors`,children:a.map((t,n)=>(0,o.jsx)(`td`,{className:`px-3 py-2 text-foreground`,children:e[t.name]==null?`-`:String(e[t.name])},n))},t))})]})}),e.length>5&&(0,o.jsxs)(`div`,{className:`bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border`,children:[`Showing 5 of `,e.length,` rows`]})]})}function ne({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema;return r?(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,o.jsx)(`span`,{className:`text-sm`,children:e||`-`})]}):(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),disabled:r||a.disabled,className:`w-10 h-10 rounded border border-input cursor-pointer`}),(0,o.jsx)(i.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`#000000`,disabled:r||a.disabled,className:a.className,pattern:`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`})]})}function re({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,c=s?.min??0,l=s?.max??100,u=s?.step??1;return r?(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:e??c}),(0,o.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,l]})]}):(0,o.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,o.jsx)(i.Slider,{value:[e??c],onValueChange:e=>t(e[0]),min:c,max:l,step:u,disabled:r||a.disabled,className:a.className}),(0,o.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??c})]})}function ie({value:e,onChange:t,field:r,readonly:s,className:c,...l}){let u=(r||l.schema)?.max??5,d=e??0,[f,p]=n.default.useState(null),m=f===null?d:f;return s?(0,o.jsxs)(`div`,{className:(0,i.cn)(`flex items-center gap-1`,c),children:[Array.from({length:u},(e,t)=>(0,o.jsx)(a.Star,{className:`w-5 h-5 ${t<d?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,o.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[d,` / `,u]})]}):(0,o.jsxs)(`div`,{className:(0,i.cn)(`flex items-center gap-1`,c),children:[Array.from({length:u},(e,n)=>(0,o.jsx)(`button`,{type:`button`,onClick:()=>t(n+1),onMouseEnter:()=>p(n+1),onMouseLeave:()=>p(null),className:`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded`,disabled:s||l.disabled,children:(0,o.jsx)(a.Star,{className:`w-5 h-5 transition-colors ${n<m?`fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500`:`text-muted-foreground hover:text-yellow-400`}`})},n)),(0,o.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[d,` / `,u]})]})}function ae({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,c=s?.language??`javascript`;return r?(0,o.jsx)(`pre`,{className:(0,i.cn)(`text-sm bg-muted p-2 rounded overflow-x-auto border`,a.className),children:(0,o.jsx)(`code`,{children:e||`-`})}):(0,o.jsx)(i.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`// Write ${c} code here...`,disabled:r||a.disabled,className:(0,i.cn)(`font-mono text-sm`,a.className),rows:12,spellCheck:!1})}function oe({value:e,onChange:t,field:r,readonly:s,...c}){let[l,u]=n.default.useState(!1),d=n.default.useRef(null),f=r||c.schema,p=e=>{let n=e.target.files?.[0];if(!n)return;if(!n.type.startsWith(`image/`)){console.error(`Please select an image file`);return}if(n.size>5*1024*1024){console.error(`File size must be less than 5MB`);return}let r=new FileReader;r.onloadend=()=>{t(r.result)},r.readAsDataURL(n)},m=()=>{t(``)},h=()=>(f?.defaultName||f?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return s?(0,o.jsxs)(i.Avatar,{className:`w-16 h-16`,children:[e&&(0,o.jsx)(i.AvatarImage,{src:e,alt:f?.label}),(0,o.jsx)(i.AvatarFallback,{children:h()})]}):(0,o.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,o.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,o.jsxs)(i.Avatar,{className:`w-16 h-16`,children:[e&&(0,o.jsx)(i.AvatarImage,{src:e,alt:f?.label}),(0,o.jsx)(i.AvatarFallback,{children:h()})]}),!s&&l&&e&&(0,o.jsx)(`button`,{type:`button`,onClick:m,className:`absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90`,children:(0,o.jsx)(a.X,{className:`w-3 h-3`})})]}),(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(`input`,{ref:d,type:`file`,accept:`image/*`,onChange:p,className:`hidden`}),(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>d.current?.click(),disabled:s||c.disabled,children:[(0,o.jsx)(a.Upload,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}function se({value:e,onChange:t,field:n,readonly:r,...a}){let s=e||{},c=(e,n)=>{t({...s,[e]:n})};return r?(0,o.jsx)(`span`,{className:`text-sm`,children:(e=>[e.street,e.city,[e.state,e.zipCode].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `)||`-`)(s)}):(0,o.jsxs)(`div`,{className:`space-y-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,o.jsx)(i.Input,{id:`street`,type:`text`,value:s.street||``,onChange:e=>c(`street`,e.target.value),placeholder:`123 Main St`,disabled:r||a.disabled,className:a.className})]}),(0,o.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,o.jsx)(i.Input,{id:`city`,type:`text`,value:s.city||``,onChange:e=>c(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||a.disabled})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,o.jsx)(i.Input,{id:`state`,type:`text`,value:s.state||``,onChange:e=>c(`state`,e.target.value),placeholder:`CA`,disabled:r||a.disabled})]})]}),(0,o.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,o.jsx)(i.Input,{id:`zipCode`,type:`text`,value:s.zipCode||``,onChange:e=>c(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||a.disabled})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,o.jsx)(i.Input,{id:`country`,type:`text`,value:s.country||``,onChange:e=>c(`country`,e.target.value),placeholder:`United States`,disabled:r||a.disabled})]})]})]})}function ce({value:e,onChange:t,field:r,readonly:s,...c}){let[l,u]=n.default.useState(!1),d=e||{},f=(e,n)=>{t({...d,[e]:n?Number(n):void 0})},p=()=>{if(!navigator.geolocation){console.error(`Geolocation is not supported by this browser`);return}u(!0),navigator.geolocation.getCurrentPosition(e=>{t({latitude:e.coords.latitude,longitude:e.coords.longitude,accuracy:e.coords.accuracy}),u(!1)},e=>{console.error(`Error getting location:`,e.message),u(!1)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},m=e=>!e.latitude||!e.longitude?`-`:`${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`,h=()=>{if(!d.latitude||!d.longitude)return;let e=`https://www.google.com/maps?q=${d.latitude},${d.longitude}`;window.open(e,`_blank`)};return s?(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(a.MapPin,{className:`w-4 h-4 text-muted-foreground`}),(0,o.jsx)(`span`,{className:`text-sm`,children:m(d)}),d.latitude&&d.longitude&&(0,o.jsx)(i.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,className:`p-0 h-auto`,children:`View on map`})]}):(0,o.jsxs)(`div`,{className:`space-y-3`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:p,disabled:s||l,children:[(0,o.jsx)(a.Crosshair,{className:`w-4 h-4 mr-2`}),l?`Getting location...`:`Use Current Location`]}),d.latitude&&d.longitude&&(0,o.jsxs)(i.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,children:[(0,o.jsx)(a.MapPin,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,o.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,o.jsx)(i.Input,{id:`latitude`,type:`number`,value:d.latitude??``,onChange:e=>f(`latitude`,e.target.value),placeholder:`37.7749`,disabled:s||c.disabled,step:`any`,className:c.className})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Label,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,o.jsx)(i.Input,{id:`longitude`,type:`number`,value:d.longitude??``,onChange:e=>f(`longitude`,e.target.value),placeholder:`-122.4194`,disabled:s||c.disabled,step:`any`})]})]}),d.accuracy&&(0,o.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,d.accuracy.toFixed(0),`m`]})]})}function le({value:e,onChange:t,readonly:r}){let s=(0,n.useRef)(null),[c,l]=n.default.useState(!1),[u,d]=n.default.useState(!e);(0,n.useEffect)(()=>{if(e&&s.current){let t=s.current.getContext(`2d`);if(t){let n=new Image;n.onload=()=>{t.drawImage(n,0,0),d(!1)},n.src=e}}},[e]);let f=e=>{if(r)return;l(!0),d(!1);let t=s.current;if(!t)return;let n=t.getContext(`2d`);if(!n)return;let i=t.getBoundingClientRect(),a=`touches`in e?e.touches[0].clientX-i.left:e.clientX-i.left,o=`touches`in e?e.touches[0].clientY-i.top:e.clientY-i.top;n.beginPath(),n.moveTo(a,o)},p=e=>{if(!c||r)return;let t=s.current;if(!t)return;let n=t.getContext(`2d`);if(!n)return;let i=t.getBoundingClientRect(),a=`touches`in e?e.touches[0].clientX-i.left:e.clientX-i.left,o=`touches`in e?e.touches[0].clientY-i.top:e.clientY-i.top;n.lineTo(a,o),n.strokeStyle=`#000`,n.lineWidth=2,n.lineCap=`round`,n.lineJoin=`round`,n.stroke()},m=()=>{if(!c)return;l(!1);let e=s.current;e&&t(e.toDataURL(`image/png`))};return r&&e?(0,o.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,o.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):r&&!e?(0,o.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,o.jsxs)(`div`,{className:`space-y-2`,children:[(0,o.jsx)(`div`,{className:`border rounded bg-white`,children:(0,o.jsx)(`canvas`,{ref:s,width:400,height:200,className:`w-full touch-none cursor-crosshair`,onMouseDown:f,onMouseMove:p,onMouseUp:m,onMouseLeave:m,onTouchStart:f,onTouchMove:p,onTouchEnd:m})}),(0,o.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u?`Sign above`:`Signature captured`}),(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{let e=s.current;if(!e)return;let n=e.getContext(`2d`);n&&(n.clearRect(0,0,e.width,e.height),d(!0),t(``))},disabled:r||u,children:[(0,o.jsx)(a.Eraser,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}function ue({value:e,onChange:t,field:r,readonly:s,...c}){let[l,u]=n.default.useState(!1),d=r||c.schema;return s?(0,o.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,o.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||`-`}),e&&(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>u(!l),children:[(0,o.jsx)(a.QrCode,{className:`w-4 h-4 mr-2`}),l?`Hide`:`Show`,` QR`]})]}):(0,o.jsxs)(`div`,{className:`space-y-3`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(i.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:d?.placeholder||`Enter text for QR code`,disabled:s||c.disabled,className:c.className}),e&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,o.jsx)(a.Copy,{className:`w-4 h-4`})}),(0,o.jsx)(i.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>u(!l),children:(0,o.jsx)(a.QrCode,{className:`w-4 h-4`})})]})]}),l&&e&&(0,o.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,o.jsx)(`img`,{src:(e=>`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(e)}`)(e),alt:`QR Code`,className:`w-48 h-48`})}),e&&(0,o.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}function j({value:e,onChange:t,field:n,readonly:r,className:s,...c}){let l=e||[],u=n||c.schema,d=()=>{let e={id:`new-${Date.now()}`,label:`New Related Record`};t([...l,e])},f=e=>{t(l.filter(t=>t.id!==e))},p=e=>{console.log(`View detail:`,e)};return r?(0,o.jsxs)(`div`,{className:(0,i.cn)(`space-y-2`,s),children:[l.length===0?(0,o.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No related records`}):l.map(e=>(0,o.jsxs)(`div`,{className:`flex items-center justify-between p-2 border rounded hover:bg-muted/50`,children:[(0,o.jsx)(`span`,{className:`text-sm`,children:e.label}),(0,o.jsx)(i.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>p(e),children:(0,o.jsx)(a.ExternalLink,{className:`w-4 h-4`})})]},e.id)),(0,o.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[l.length,` `,l.length===1?`record`:`records`]})]}):(0,o.jsxs)(`div`,{className:(0,i.cn)(`space-y-3`,s),children:[(0,o.jsxs)(`div`,{className:`space-y-2`,children:[l.map(e=>(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,o.jsx)(i.Badge,{variant:`outline`,children:e.id}),(0,o.jsx)(`span`,{className:`text-sm flex-1`,children:e.label})]}),(0,o.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,o.jsx)(i.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>p(e),children:(0,o.jsx)(a.ExternalLink,{className:`w-4 h-4`})}),(0,o.jsx)(i.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>f(e.id),disabled:c.disabled,children:(0,o.jsx)(a.X,{className:`w-4 h-4`})})]})]},e.id)),l.length===0&&(0,o.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20`,children:`No related records`})]}),(0,o.jsxs)(i.Button,{type:`button`,variant:`outline`,className:`w-full`,onClick:d,disabled:c.disabled,children:[(0,o.jsx)(a.Plus,{className:`w-4 h-4 mr-2`}),`Add `,u?.label||`Record`]})]})}function M(e){if(e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>{if(typeof e==`object`&&e){let t=e;return String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}).join(`, `);if(typeof e==`object`){let t=e;return`$numberDecimal`in t?Number(t.$numberDecimal):`$oid`in t?String(t.$oid):`$date`in t?String(t.$date):String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}function N(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${t} ${e.toFixed(2)}`}}function de(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,notation:`compact`,maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,``)}catch{return`${t} ${e}`}}function P(e,t=0){return`${(e>-1&&e<1?e*100:e).toFixed(t)}%`}function F(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function I(e){if(!e)return`-`;let t=typeof e==`string`?new Date(e):e;if(isNaN(t.getTime()))return`-`;let n=new Date,r=new Date(n.getFullYear(),n.getMonth(),n.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-r.getTime(),a=Math.round(i/(1e3*60*60*24));if(a===0)return`Today`;if(a===1)return`Tomorrow`;if(a===-1)return`Yesterday`;if(a<-1){let e=Math.abs(a);return e<=7?`Overdue ${e}d`:L(t)}return a>1&&a<=7?`In ${a} days`:L(t)}function L(e,t){if(!e)return`-`;let n=typeof e==`string`?new Date(e):e;return isNaN(n.getTime())?`-`:t===`short`?`${n.toLocaleDateString(`en-US`,{month:`short`})} ${n.getDate()}, '${String(n.getFullYear()).slice(-2)}`:t===`relative`?I(n):n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function fe(e){if(!e)return`-`;let t=typeof e==`string`?new Date(e):e;return isNaN(t.getTime())?`-`:t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function R({value:e}){let t=M(e);return(0,o.jsx)(`span`,{className:`truncate`,children:t!=null&&t!==``?String(t):`-`})}function z({value:e,field:t}){if(e==null)return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let n=M(e),r=t.precision??0,i=Number(n);return(0,o.jsx)(`span`,{className:`tabular-nums`,children:isNaN(i)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:r,maximumFractionDigits:r}).format(i)})}function B({value:e,field:t}){if(e==null)return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let n=M(e),r=t.currency||`USD`,i=Number(n);return(0,o.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(i)?String(n):N(i,r)})}var pe=/progress|completion/;function V({value:e,field:t}){if(e==null)return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let n=M(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,o.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=pe.test(t?.name?.toLowerCase()||``),s=a?i:i>-1&&i<1?i*100:i,c=a?`${i.toFixed(r)}%`:P(i,r),l=Math.max(0,Math.min(100,s));return(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted overflow-hidden flex-shrink-0`,role:`progressbar`,"aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:(0,o.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${l}%`}})}),(0,o.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:c})]})}var me=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function H({value:e,field:t}){if(e==null)return(0,o.jsx)(`span`,{className:`text-muted-foreground/50 text-xs italic flex items-center justify-center`,children:`—`});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,o.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,o.jsx)(`div`,{className:`size-5 rounded-full bg-green-500 flex items-center justify-center`,role:`img`,"aria-label":`Completed`,"data-testid":`completion-indicator`,children:(0,o.jsx)(a.Check,{className:`size-3 text-white`})}):(0,o.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):me.has(n)&&!e?(0,o.jsxs)(i.Badge,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||F(n),` — Off`]}):(0,o.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,o.jsx)(i.Checkbox,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function U({value:e,field:t}){if(!e)return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let n=M(e),r=L(n,t.format||`relative`),i=typeof n==`string`?new Date(n):n,a=i instanceof Date&&!isNaN(i.getTime()),s=new Date;s.setHours(0,0,0,0);let c=a&&i<s,l=a?i.toISOString():String(n);return(0,o.jsx)(`span`,{className:`tabular-nums${c?` text-red-600`:``}`,title:l,children:r})}function W({value:e}){if(!e)return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let t=M(e),n=typeof t==`string`?new Date(t):t;if(!(n instanceof Date)||isNaN(n.getTime()))return(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`});let r=n.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`,year:`numeric`}),i=n.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,hour12:!0}).toLowerCase();return(0,o.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,o.jsx)(`span`,{children:r}),(0,o.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var he={critical:`red`,urgent:`red`,high:`orange`,medium:`yellow`,normal:`blue`,low:`gray`,none:`gray`,paid:`green`,completed:`green`,done:`green`,active:`green`,approved:`green`,resolved:`green`,pending:`yellow`,waiting:`yellow`,on_hold:`yellow`,shipped:`blue`,in_progress:`blue`,open:`blue`,processing:`blue`,draft:`gray`,new:`gray`,inactive:`gray`,closed:`gray`,cancelled:`red`,canceled:`red`,rejected:`red`,failed:`red`,overdue:`red`,delivered:`purple`,archived:`indigo`},ge={gray:`bg-gray-100 text-gray-800 border-gray-300`,red:`bg-red-100 text-red-800 border-red-300`,orange:`bg-orange-100 text-orange-800 border-orange-300`,yellow:`bg-yellow-100 text-yellow-800 border-yellow-300`,green:`bg-green-100 text-green-800 border-green-300`,blue:`bg-blue-100 text-blue-800 border-blue-300`,indigo:`bg-indigo-100 text-indigo-800 border-indigo-300`,purple:`bg-purple-100 text-purple-800 border-purple-300`,pink:`bg-pink-100 text-pink-800 border-pink-300`};function _e(e,t){return ge[e||(t?he[String(t).toLowerCase().replace(/[\s-]/g,`_`)]:void 0)||``]||`bg-muted text-muted-foreground border-border`}function G({value:e,field:t}){let n=t.options||[];if(!e)return(0,o.jsx)(`span`,{children:`-`});if(Array.isArray(e))return(0,o.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let r=n.find(t=>t.value===e),a=r?.label||F(String(e));return(0,o.jsx)(i.Badge,{variant:`outline`,className:_e(r?.color,e),children:a},t)})});let r=n.find(t=>t.value===e),a=r?.label||F(String(e));return(0,o.jsx)(i.Badge,{variant:`outline`,className:_e(r?.color,e),children:a})}function ve({value:e}){if(!e)return(0,o.jsx)(`span`,{children:`-`});let t=String(M(e)??``),[r,s]=n.default.useState(!1);return(0,o.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,o.jsx)(i.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,o.jsx)(`a`,{href:`mailto:${t}`,onClick:e=>e.stopPropagation(),children:t})}),(0,o.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/email:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(t).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)}).catch(()=>{})},"aria-label":`Copy email`,children:r?(0,o.jsx)(a.Check,{className:`h-3 w-3 text-green-600`}):(0,o.jsx)(a.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function ye({value:e}){if(!e)return(0,o.jsx)(`span`,{children:`-`});let t=String(M(e)??``);return(0,o.jsx)(i.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,o.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function be({value:e}){if(!e)return(0,o.jsx)(`span`,{children:`-`});let t=String(M(e)??``),[r,i]=n.default.useState(!1);return(0,o.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,o.jsxs)(`a`,{href:`tel:${t}`,className:`inline-flex items-center gap-1 text-blue-600 hover:text-blue-800`,onClick:e=>e.stopPropagation(),children:[(0,o.jsx)(a.Phone,{className:`h-3 w-3`}),t]}),(0,o.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/phone:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(t).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":`Copy phone number`,children:r?(0,o.jsx)(a.Check,{className:`h-3 w-3 text-green-600`}):(0,o.jsx)(a.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function xe({value:e,field:t}){if(!e)return(0,o.jsx)(`span`,{children:`-`});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,o.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,o.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function Se({value:e}){return e?Array.isArray(e)?(0,o.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>(0,o.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-8 rounded-md border-2 border-white object-cover`},t)),e.length>3&&(0,o.jsxs)(`div`,{className:`size-8 rounded-md border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-medium text-gray-600`,children:[`+`,e.length-3]})]}):(0,o.jsx)(`img`,{src:e.url||``,alt:e.name||`Image`,className:`size-10 rounded-md object-cover`}):(0,o.jsx)(`span`,{children:`-`})}function K({value:e,field:t}){if(e==null||e===``)return(0,o.jsx)(`span`,{children:`-`});let n=t.options||[],r=e=>{if(n.length>0){let t=n.find(t=>String(t.value)===String(e));if(t)return t.label}return String(e)};return Array.isArray(e)?(0,o.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let n;return n=typeof e==`object`&&e?e.name||e.label||e.id||e._id||String(e):r(e),(0,o.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-100 text-gray-800`,children:n},t)})}):typeof e==`object`&&e?(0,o.jsx)(`span`,{className:`truncate`,children:e.name||e.label||e.id||e._id||`[Object]`}):(0,o.jsx)(`span`,{className:`truncate`,children:r(e)})}function q({value:e}){let t=M(e);return(0,o.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:t==null?`-`:String(t)})}function J({value:e}){if(!e)return(0,o.jsx)(`span`,{children:`-`});if(typeof e!=`object`)return(0,o.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,o.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,o.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`;return(0,o.jsx)(i.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,o.jsx)(i.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),e.length>3&&(0,o.jsx)(i.Avatar,{className:`size-8 border-2 border-white`,children:(0,o.jsxs)(i.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`;return(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(i.Avatar,{className:`size-8`,children:(0,o.jsx)(i.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,o.jsx)(`span`,{className:`truncate`,children:t})]})}var Y=new Map;function X(e,t){Y.set(e,t)}function Z(e){return Y.has(e)?Y.get(e):{text:R,textarea:R,markdown:R,html:R,number:z,currency:B,percent:V,boolean:H,date:U,datetime:W,time:R,select:G,status:G,lookup:K,master_detail:K,email:ve,url:ye,phone:be,file:xe,image:Se,formula:q,summary:q,auto_number:R,user:J,owner:J,password:()=>(0,o.jsx)(`span`,{children:`••••••`}),location:R,object:()=>(0,o.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Object]`}),vector:()=>(0,o.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,o.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||R}X(`lookup`,K),X(`master_detail`,K),X(`select`,G),X(`status`,G),X(`user`,J),X(`owner`,J),t.r(Z);function Ce(e){return{text:`field:text`,textarea:`field:textarea`,markdown:`field:markdown`,html:`field:html`,number:`field:number`,currency:`field:currency`,percent:`field:percent`,date:`field:date`,datetime:`field:datetime`,time:`field:time`,boolean:`field:boolean`,select:`field:select`,lookup:`field:lookup`,master_detail:`field:master_detail`,email:`field:email`,phone:`field:phone`,url:`field:url`,file:`field:file`,image:`field:image`,password:`field:password`,location:`field:location`,formula:`field:formula`,summary:`field:summary`,auto_number:`field:auto_number`}[e]||`field:text`}function we(e){if(e<0||!Number.isFinite(e)||e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(r>0?1:0)} ${t[r]}`}function Te(e){let t={};return e.required&&(t.required=typeof e.required_message==`string`?e.required_message:`${e.label||e.name} is required`),e.min_length&&(t.minLength={value:e.min_length,message:e.min_length_message||`Minimum length is ${e.min_length} characters`}),e.max_length&&(t.maxLength={value:e.max_length,message:e.max_length_message||`Maximum length is ${e.max_length} characters`}),e.min!==void 0&&(t.min={value:e.min,message:e.min_message||`Minimum value is ${e.min}`}),e.max!==void 0&&(t.max={value:e.max,message:e.max_message||`Maximum value is ${e.max}`}),e.pattern&&(t.pattern={value:typeof e.pattern==`string`?new RegExp(e.pattern):e.pattern,message:e.pattern_message||`Invalid format`}),e.type===`email`&&(t.pattern={value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:`Please enter a valid email address`}),e.type===`url`&&(t.pattern={value:/^https?:\/\/.+/,message:`Please enter a valid URL`}),e.validate&&(t.validate=e.validate),Object.keys(t).length>0?t:void 0}function Q(e,t){if(!e)return!0;if(e.field&&e.value!==void 0){let n=t[e.field];if(e.operator===`=`||e.operator===`==`)return n===e.value;if(e.operator===`!=`)return n!==e.value;if(e.operator===`>`)return n>e.value;if(e.operator===`>=`)return n>=e.value;if(e.operator===`<`)return n<e.value;if(e.operator===`<=`)return n<=e.value;if(e.operator===`in`)return Array.isArray(e.value)&&e.value.includes(n)}return e.and&&Array.isArray(e.and)?e.and.every(e=>Q(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>Q(e,t)):!0}function $(e){let t=({schema:t,className:r,value:i,...a})=>{let[s,c]=n.default.useState(i??t?.value??``),l={name:t?.name||`field`,label:t?.label,type:t?.type,placeholder:t?.placeholder,required:t?.required,readonly:t?.readonly||t?.readOnly,help:t?.help,description:t?.description,defaultValue:t?.defaultValue||t?.value,...t},u=n.default.useCallback(e=>{c(e),a.onChange&&a.onChange(e)},[a]),d=t?.readonly||t?.readOnly||!1;return(0,o.jsxs)(`div`,{className:`grid w-full items-center gap-1.5`,"data-obj-id":t?.id,"data-obj-type":t?.type,children:[t?.label&&(0,o.jsx)(`label`,{htmlFor:t.id,className:t.required?`after:content-['*'] after:ml-0.5 after:text-red-500`:``,children:t.label}),(0,o.jsx)(e,{value:s,onChange:u,field:l,readonly:d,className:r}),t?.description&&(0,o.jsx)(`p`,{className:`text-sm text-gray-500`,children:t.description})]})};return t.displayName=`FieldRenderer(${e.displayName||e.name||`Component`})`,t}var Ee={text:()=>Promise.resolve().then(()=>require(`./TextField-aLAzBaLZ.cjs`)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>require(`./TextAreaField-Cxp3DFC6.cjs`)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>require(`./NumberField-SqRwbcY8.cjs`)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>require(`./BooleanField-DeexI_O2.cjs`)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>require(`./SelectField-CAa6c0cB.cjs`)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>require(`./DateField-DDUllj7w.cjs`)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>require(`./DateTimeField-DDqgVN3b.cjs`)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>require(`./TimeField-D0lF0y_I.cjs`)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>require(`./EmailField-B-3nY8Pr.cjs`)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>require(`./PhoneField-CirvuysP.cjs`)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>require(`./UrlField-D0ugmD3f.cjs`)).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>require(`./CurrencyField-CezTX_rA.cjs`)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>require(`./PercentField-BzhD6tQm.cjs`)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>require(`./PasswordField-kLp-ZyPm.cjs`)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>require(`./RichTextField-Bog2i4NN.cjs`)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>require(`./RichTextField-Bog2i4NN.cjs`)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>require(`./LookupField-C9rPrHi_.cjs`)).then(e=>e.n).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>require(`./MasterDetailField-TNP2825Z.cjs`)).then(e=>({default:e.MasterDetailField})),file:()=>Promise.resolve().then(()=>require(`./FileField-C1bcL7tu.cjs`)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>require(`./ImageField-Cna7g6KL.cjs`)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>require(`./LocationField-DpRe9QlH.cjs`)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>require(`./FormulaField-CsbQIZ7S.cjs`)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>require(`./SummaryField-DA16Edq3.cjs`)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>require(`./AutoNumberField-f76XU1bR.cjs`)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>require(`./UserField-DGlorzyG.cjs`)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>require(`./UserField-DGlorzyG.cjs`)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>require(`./ObjectField-BWZwaFIG.cjs`)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>require(`./VectorField-BSD85ntU.cjs`)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>require(`./GridField-2m74haE0.cjs`)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>require(`./ColorField-CM9CxZ9h.cjs`)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>require(`./SliderField-DRjEJSxK.cjs`)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>require(`./RatingField-CZG8SgQ8.cjs`)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>require(`./CodeField-DDOMH8E8.cjs`)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>require(`./AvatarField-CXOdYavl.cjs`)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>require(`./AddressField-Ctsxkj35.cjs`)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>require(`./GeolocationField-UFu9VR-x.cjs`)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>require(`./SignatureField-jsb-0AYp.cjs`)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>require(`./QRCodeField-C4OOLCbE.cjs`)).then(e=>({default:e.QRCodeField}))};function De(e){let t=Ee[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let i=n.default.lazy(t);r.ComponentRegistry.register(e,i,{namespace:`field`})}function Oe(){Object.keys(Ee).forEach(e=>{De(e)})}function ke(){r.ComponentRegistry.register(`text`,$(s),{namespace:`field`}),r.ComponentRegistry.register(`textarea`,$(_),{namespace:`field`}),r.ComponentRegistry.register(`number`,$(c),{namespace:`field`}),r.ComponentRegistry.register(`boolean`,$(l),{namespace:`field`}),r.ComponentRegistry.register(`select`,$(u),{namespace:`field`}),r.ComponentRegistry.register(`date`,$(d),{namespace:`field`}),r.ComponentRegistry.register(`datetime`,$(y),{namespace:`field`}),r.ComponentRegistry.register(`time`,$(b),{namespace:`field`}),r.ComponentRegistry.register(`email`,$(f),{namespace:`field`}),r.ComponentRegistry.register(`phone`,$(p),{namespace:`field`}),r.ComponentRegistry.register(`url`,$(m),{namespace:`field`}),r.ComponentRegistry.register(`currency`,$(g),{namespace:`field`}),r.ComponentRegistry.register(`percent`,$(x),{namespace:`field`}),r.ComponentRegistry.register(`password`,$(S),{namespace:`field`}),r.ComponentRegistry.register(`markdown`,$(v),{namespace:`field`}),r.ComponentRegistry.register(`html`,$(v),{namespace:`field`}),r.ComponentRegistry.register(`lookup`,$(t.t),{namespace:`field`}),r.ComponentRegistry.register(`master_detail`,$(j),{namespace:`field`}),r.ComponentRegistry.register(`file`,$(C),{namespace:`field`}),r.ComponentRegistry.register(`image`,$(w),{namespace:`field`}),r.ComponentRegistry.register(`location`,$(T),{namespace:`field`}),r.ComponentRegistry.register(`formula`,$(E),{namespace:`field`}),r.ComponentRegistry.register(`summary`,$(D),{namespace:`field`}),r.ComponentRegistry.register(`auto_number`,$(O),{namespace:`field`}),r.ComponentRegistry.register(`user`,$(k),{namespace:`field`}),r.ComponentRegistry.register(`owner`,$(k),{namespace:`field`}),r.ComponentRegistry.register(`object`,$(A),{namespace:`field`}),r.ComponentRegistry.register(`vector`,$(ee),{namespace:`field`}),r.ComponentRegistry.register(`grid`,$(te),{namespace:`field`}),r.ComponentRegistry.register(`color`,$(ne),{namespace:`field`}),r.ComponentRegistry.register(`slider`,$(re),{namespace:`field`}),r.ComponentRegistry.register(`rating`,$(ie),{namespace:`field`}),r.ComponentRegistry.register(`code`,$(ae),{namespace:`field`}),r.ComponentRegistry.register(`avatar`,$(oe),{namespace:`field`}),r.ComponentRegistry.register(`address`,$(se),{namespace:`field`}),r.ComponentRegistry.register(`geolocation`,$(ce),{namespace:`field`}),r.ComponentRegistry.register(`signature`,$(le),{namespace:`field`}),r.ComponentRegistry.register(`qrcode`,$(ue),{namespace:`field`})}Oe(),exports.AddressField=se,exports.AutoNumberField=O,exports.AvatarField=oe,exports.BooleanCellRenderer=H,exports.BooleanField=l,exports.CodeField=ae,exports.ColorField=ne,exports.CurrencyCellRenderer=B,exports.CurrencyField=g,exports.DateCellRenderer=U,exports.DateField=d,exports.DateTimeCellRenderer=W,exports.DateTimeField=y,exports.EmailCellRenderer=ve,exports.EmailField=f,exports.FileCellRenderer=xe,exports.FileField=C,exports.FormulaCellRenderer=q,exports.FormulaField=E,exports.GeolocationField=ce,exports.GridField=te,exports.ImageCellRenderer=Se,exports.ImageField=w,exports.LocationField=T,exports.LookupCellRenderer=K,exports.LookupField=t.t,exports.MasterDetailField=j,exports.NumberCellRenderer=z,exports.NumberField=c,exports.ObjectField=A,exports.PasswordField=S,exports.PercentCellRenderer=V,exports.PercentField=x,exports.PhoneCellRenderer=be,exports.PhoneField=p,exports.QRCodeField=ue,exports.RatingField=ie,exports.RecordPickerDialog=t.i,exports.RichTextField=v,exports.SelectCellRenderer=G,exports.SelectField=u,exports.SignatureField=le,exports.SliderField=re,exports.SummaryField=D,exports.TextAreaField=_,exports.TextCellRenderer=R,exports.TextField=s,exports.TimeField=b,exports.UrlCellRenderer=ye,exports.UrlField=m,exports.UserCellRenderer=J,exports.UserField=k,exports.VectorField=ee,exports.buildValidationRules=Te,exports.coerceToSafeValue=M,exports.evaluateCondition=Q,exports.formatCompactCurrency=de,exports.formatCurrency=N,exports.formatDate=L,exports.formatDateTime=fe,exports.formatFileSize=we,exports.formatPercent=P,exports.formatRelativeDate=I,exports.getCellRenderer=Z,exports.humanizeLabel=F,exports.mapFieldTypeToFormType=Ce,exports.registerAllFields=Oe,exports.registerField=De,exports.registerFieldRenderer=X,exports.registerFields=ke;
|