@object-ui/fields 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @object-ui/fields
2
2
 
3
+ ## 4.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 1dc6061: fix(build): inline dynamic imports in library outputs
8
+
9
+ Library `vite build --lib` outputs were emitting separate code-split chunks
10
+ (`rolldown-runtime-*.js`, `LookupField-*.js`, etc.) when source files used
11
+ `React.lazy()` / dynamic `import()`. When consumer apps re-bundled these
12
+ multi-file dists, the library's per-chunk rolldown-runtime collided with the
13
+ consumer's own runtime, causing "TypeError: i is not a function" at runtime
14
+ when lazy components tried to register themselves (e.g. TextField in
15
+ `@object-ui/fields` after 4.0.4).
16
+
17
+ Adding `output.inlineDynamicImports: true` to all `@object-ui/*` library vite
18
+ configs forces a single `dist/index.js` per package, which lets consumer
19
+ bundlers handle the library as an opaque ESM module without identifier
20
+ mismatches across chunks.
21
+
22
+ Affected packages: components, fields, layout, plugin-aggrid, plugin-ai,
23
+ plugin-calendar, plugin-charts, plugin-chatbot, plugin-dashboard,
24
+ plugin-designer, plugin-detail, plugin-editor, plugin-form, plugin-gantt,
25
+ plugin-grid, plugin-kanban, plugin-list, plugin-map, plugin-markdown,
26
+ plugin-report, plugin-timeline, plugin-view, plugin-workflow.
27
+
28
+ - Updated dependencies [1dc6061]
29
+ - @object-ui/components@4.0.5
30
+ - @object-ui/types@4.0.5
31
+ - @object-ui/core@4.0.5
32
+ - @object-ui/i18n@4.0.5
33
+ - @object-ui/react@4.0.5
34
+ - @object-ui/providers@4.0.5
35
+
3
36
  ## 4.0.4
4
37
 
5
38
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./useFieldTranslation-BYPwtuNZ.cjs`),n=require(`./LookupField-CRKvDPFG.cjs`),r=require(`./ImageCropperDialog-CK1apFXU.cjs`);let i=require(`react`);i=e.n(i,1);let a=require(`@object-ui/core`),o=require(`@object-ui/components`),s=require(`lucide-react`),c=require(`react/jsx-runtime`),l=require(`@object-ui/providers`);var u=e.t({TextField:()=>d});function d({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,c.jsx)(`span`,{className:`text-sm`,children:e||(0,c.jsx)(o.EmptyValue,{})});let s=a?.rows,{inputType:l,...u}=i;return s&&s>1?(0,c.jsx)(o.Textarea,{...u,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||u.disabled}):(0,c.jsx)(o.Input,{...u,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||u.disabled})}var f=e.t({NumberField:()=>p});function p({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,c.jsx)(o.EmptyValue,{}):(0,c.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,s=a?.precision,{inputType:l,...u}=i;return(0,c.jsx)(o.Input,{...u,type:`number`,value:e??``,onChange:e=>{let n=e.target.value;t(n===``?null:Number(n))},placeholder:a?.placeholder,disabled:r||u.disabled,step:s?10**-s:`any`})}var m=e.t({BooleanField:()=>h});function h({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,l=s?.widget,u=(0,i.useId)(),d=s?.name||u,f=s?.label||`Checkbox`;if(r)return(0,c.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:p,...m}=a;return l===`checkbox`?(0,c.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,c.jsx)(o.Checkbox,{...m,id:d,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||m.disabled}),(0,c.jsx)(o.Label,{htmlFor:d,children:f})]}):(0,c.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,c.jsx)(o.Switch,{...m,id:d,checked:!!e,onCheckedChange:t,disabled:r||m.disabled}),(0,c.jsx)(o.Label,{htmlFor:d,children:f})]})}var g=e.t({SelectField:()=>_});function _({value:e,onChange:n,field:r,readonly:i,...a}){let s=r||a.schema,l=s?.options||[],{t:u}=t.t();if(i){let t=l.find(t=>t.value===e)?.label||e;return t?(0,c.jsx)(`span`,{className:`text-sm`,children:t}):(0,c.jsx)(o.EmptyValue,{})}return(0,c.jsxs)(o.Select,{...a,value:e,onValueChange:n,disabled:i||a.disabled,children:[(0,c.jsx)(o.SelectTrigger,{className:a.className,id:a.id,children:(0,c.jsx)(o.SelectValue,{placeholder:s?.placeholder||u(`common.selectOption`)})}),(0,c.jsx)(o.SelectContent,{position:`popper`,children:l.map(e=>(0,c.jsx)(o.SelectItem,{value:e.value,children:e.label},e.value))})]})}var v=e.t({DateField:()=>y});function y({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,c.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,c.jsx)(o.EmptyValue,{});let{inputType:a,...s}=i;return(0,c.jsx)(o.Input,{...s,type:`date`,value:e||``,onChange:e=>t(e.target.value),disabled:r||s.disabled})}var b=e.t({EmailField:()=>x});function x({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let s=n||a.schema;if(r)return e?(0,c.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,c.jsx)(o.EmptyValue,{});let{inputType:l,...u}=a;return(0,c.jsx)(o.Input,{...u,type:`email`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`email@example.com`,disabled:r||u.disabled,"aria-invalid":!!i})}var S=e.t({PhoneField:()=>C});function C({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let s=n||a.schema;if(r)return e?(0,c.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,c.jsx)(o.EmptyValue,{});let{inputType:l,...u}=a;return(0,c.jsx)(o.Input,{...u,type:`tel`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`(555) 123-4567`,disabled:r||u.disabled,"aria-invalid":!!i})}var w=e.t({UrlField:()=>T});function T({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let s=n||a.schema;if(r)return e?e.startsWith(`http://`)||e.startsWith(`https://`)?(0,c.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,c.jsx)(`span`,{className:`text-sm`,children:e}):(0,c.jsx)(o.EmptyValue,{});let{inputType:l,...u}=a;return(0,c.jsx)(o.Input,{...u,type:`url`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`https://example.com`,disabled:r||u.disabled,"aria-invalid":!!i})}var ee=e.t({CurrencyField:()=>E});function te(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${t} ${e.toFixed(2)}`}}function E({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...s}){let l=n||s.schema,u=l?.currency||`USD`,d=l?.precision??2;if(r)return e==null?(0,c.jsx)(o.EmptyValue,{}):(0,c.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:te(Number(e),u)});let f=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(d)))};return(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:u===`USD`?`$`:u}),(0,c.jsx)(o.Input,{...s,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:f,placeholder:l?.placeholder||`0.00`,disabled:r||s.disabled,className:`pl-8 ${a||``}`,step:(10**-d).toFixed(d),"aria-invalid":!!i})]})}var D=e.t({TextAreaField:()=>O});function O({value:e,onChange:t,field:n,readonly:r,errorMessage:a,...l}){if(r)return(0,c.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,c.jsx)(o.EmptyValue,{})});let u=n||l.schema,d=u?.rows||4,f=u?.max_length,p=!!(l.mobileFullscreen??u?.mobile_fullscreen??l.mobile_fullscreen??l.schema?.mobile_fullscreen),[m,h]=(0,i.useState)(!1),[g,_]=(0,i.useState)(e??``),v=()=>{_(e??``),h(!0)},y=()=>h(!1),b=()=>{t(g),h(!1)},{inputType:x,mobileFullscreen:S,...C}=l;return(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(o.Textarea,{...C,value:e||``,onChange:e=>t(e.target.value),placeholder:u?.placeholder,disabled:r||C.disabled,rows:d,maxLength:f,"aria-invalid":!!a,className:C.className}),p&&(0,c.jsx)(`button`,{type:`button`,onClick:v,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm transition-colors`,"aria-label":`Edit ${u?.label??`text`} fullscreen`,"data-testid":`textarea-fullscreen-toggle`,children:(0,c.jsx)(s.Maximize2,{className:`size-3.5`})}),f&&(0,c.jsxs)(`div`,{className:`absolute bottom-2 right-2 text-xs text-gray-400`,"aria-live":`polite`,"aria-label":`Character count: ${(e||``).length} of ${f}`,children:[(e||``).length,`/`,f]}),p&&(0,c.jsx)(o.Dialog,{open:m,onOpenChange:h,children:(0,c.jsxs)(o.DialogContent,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`textarea-fullscreen-dialog`,children:[(0,c.jsx)(o.DialogHeader,{className:`p-4 border-b`,children:(0,c.jsx)(o.DialogTitle,{className:`text-base`,children:u?.label??`Edit text`})}),(0,c.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,c.jsx)(o.Textarea,{autoFocus:!0,value:g,onChange:e=>_(e.target.value),maxLength:f,placeholder:u?.placeholder,className:`h-full min-h-full resize-none text-base`,"data-testid":`textarea-fullscreen-input`})}),(0,c.jsxs)(o.DialogFooter,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[f&&(0,c.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[g.length,`/`,f]}),(0,c.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,c.jsxs)(o.Button,{type:`button`,variant:`ghost`,onClick:y,children:[(0,c.jsx)(s.X,{className:`size-4 mr-1`}),` Cancel`]}),(0,c.jsxs)(o.Button,{type:`button`,onClick:b,"data-testid":`textarea-fullscreen-save`,children:[(0,c.jsx)(s.Check,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var ne=e.t({RichTextField:()=>k});function k({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,c.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,c.jsx)(o.EmptyValue,{})});let s=n||a.schema,l=s?.rows||8;return(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,c.jsxs)(`span`,{children:[`Format: `,s?.format||`markdown`]}),(0,c.jsx)(`span`,{className:`italic`,children:`Rich text editor (basic)`})]}),(0,c.jsx)(o.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`Enter text...`,disabled:r||a.disabled,rows:l,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var re=e.t({DateTimeField:()=>A});function A({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=new Date(e);return(0,c.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...s}=i;return(0,c.jsx)(o.Input,{...s,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),disabled:r||s.disabled})}var ie=e.t({TimeField:()=>j});function j({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,c.jsx)(`span`,{className:`text-sm`,children:e||(0,c.jsx)(o.EmptyValue,{})});let{inputType:a,...s}=i;return(0,c.jsx)(o.Input,{...s,type:`time`,value:e||``,onChange:e=>t(e.target.value),disabled:r||s.disabled})}var ae=e.t({PercentField:()=>oe});function oe({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...s}){let l=n||s.schema,u=l?.precision??2;if(r)return e==null?(0,c.jsx)(o.EmptyValue,{}):(0,c.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||s.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,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(o.Input,{...s,type:`number`,value:d,onChange:p,placeholder:l?.placeholder||`0`,disabled:r||s.disabled,className:`pr-8 ${a||``}`,step:(10**-u).toFixed(u),"aria-invalid":!!i}),(0,c.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,c.jsx)(o.Slider,{value:[f],onValueChange:m,min:0,max:100,step:h,disabled:r||s.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var se=e.t({PasswordField:()=>ce});function ce({value:e,onChange:t,field:n,readonly:r,className:a,...l}){let[u,d]=(0,i.useState)(!1),f=n||l.schema;if(r)return(0,c.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:p,...m}=l;return(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(o.Input,{...m,type:u?`text`:`password`,value:e||``,onChange:e=>t(e.target.value),placeholder:f?.placeholder,disabled:r||m.disabled,className:`pr-10 ${a||``}`}),(0,c.jsx)(o.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,c.jsx)(s.EyeOff,{className:`size-4 text-gray-500`}):(0,c.jsx)(s.Eye,{className:`size-4 text-gray-500`})})]})}var le=e.t({FileField:()=>ue});function ue({value:e,onChange:t,field:n,readonly:r,...a}){let u=(0,i.useRef)(null),d=(0,i.useRef)(null),f=n||a.schema,p=f?.multiple||!1,m=f?.accept?f.accept.join(`,`):void 0,h=f?.maxSize,g=f?.capture??null,_=!m||m.split(`,`).some(e=>e.trim().startsWith(`image/`)||e.trim()===`image/*`||e.trim().startsWith(`.jp`)||e.trim().startsWith(`.png`)||e.trim().startsWith(`.gif`)||e.trim().startsWith(`.webp`)),v=typeof navigator<`u`&&(navigator.maxTouchPoints>0||/Mobi|Android/i.test(navigator.userAgent)),y=g===!1?!1:g??(_&&v?`environment`:null),[b,x]=(0,i.useState)(!1),[S,C]=(0,i.useState)([]),{upload:w}=(0,l.useUpload)(),[T,ee]=(0,i.useState)({}),[te,E]=(0,i.useState)(!1),D=e?Array.isArray(e)?e:[e]:[],O=(0,i.useCallback)(async e=>{if(e.length===0)return;let n=[],r=e.filter(e=>{if(h&&e.size>h){let t=(h/(1024*1024)).toFixed(1);return n.push(`"${e.name}" exceeds max size (${t} MB)`),!1}return!0});if(C(n),r.length!==0){E(!0);try{let e=(await Promise.all(r.map(async e=>{try{let t=await w(e,{onProgress:t=>ee(n=>({...n,[e.name]:t}))});return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}catch(t){return n.push(`Failed to upload "${e.name}": ${t.message}`),C([...n]),null}}))).filter(Boolean);if(e.length===0)return;t(p?[...D,...e]:e[0])}finally{E(!1),ee({})}}},[D,p,t,h,w]),ne=(0,i.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!0)},[]),k=(0,i.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1)},[]),re=(0,i.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1);let t=Array.from(e.dataTransfer.files);if(m){let e=m.split(`,`).map(e=>e.trim().toLowerCase());O(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 O(t)},[m,O]);if(r)return e?(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,c.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,c.jsx)(o.EmptyValue,{});let A=e=>{O(Array.from(e.target.files||[]))},ie=e=>{if(p){let n=D.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},j=e=>(e.mime_type||``).startsWith(`image/`);return(0,c.jsxs)(`div`,{className:a.className,children:[(0,c.jsx)(`input`,{ref:u,type:`file`,multiple:p,accept:m,onChange:A,className:`hidden`}),y&&(0,c.jsx)(`input`,{ref:d,type:`file`,accept:`image/*`,capture:y,onChange:A,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsxs)(`div`,{onDragOver:ne,onDragLeave:k,onDrop:re,onClick:()=>u.current?.click(),className:`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let u=require(`react`);u=l(u,1);let d=require(`@object-ui/core`),f=require(`@object-ui/components`),p=require(`lucide-react`),m=require(`react/jsx-runtime`),h=require(`@object-ui/i18n`),g=require(`@object-ui/react`),_=require(`@object-ui/providers`);var v=s({TextField:()=>y});function y({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,m.jsx)(`span`,{className:`text-sm`,children:e||(0,m.jsx)(f.EmptyValue,{})});let o=a?.rows,{inputType:s,...c}=i;return o&&o>1?(0,m.jsx)(f.Textarea,{...c,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled}):(0,m.jsx)(f.Input,{...c,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled})}var b=o((()=>{})),x=s({NumberField:()=>S});function S({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,m.jsx)(f.EmptyValue,{}):(0,m.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,o=a?.precision,{inputType:s,...c}=i;return(0,m.jsx)(f.Input,{...c,type:`number`,value:e??``,onChange:e=>{let n=e.target.value;t(n===``?null:Number(n))},placeholder:a?.placeholder,disabled:r||c.disabled,step:o?10**-o:`any`})}var C=o((()=>{})),w=s({BooleanField:()=>T});function T({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.widget,s=(0,u.useId)(),c=a?.name||s,l=a?.label||`Checkbox`;if(r)return(0,m.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:d,...p}=i;return o===`checkbox`?(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(f.Checkbox,{...p,id:c,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||p.disabled}),(0,m.jsx)(f.Label,{htmlFor:c,children:l})]}):(0,m.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,m.jsx)(f.Switch,{...p,id:c,checked:!!e,onCheckedChange:t,disabled:r||p.disabled}),(0,m.jsx)(f.Label,{htmlFor:c,children:l})]})}var E=o((()=>{})),D,O,k=o((()=>{D={"common.selectOption":`Select an option`,"common.select":`Select...`,"common.search":`Search`,"table.selected":`{{count}} selected`},O=(0,h.createSafeTranslation)(D,`common.selectOption`)})),A=s({SelectField:()=>j});function j({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.options||[],{t:s}=O();if(r){let t=o.find(t=>t.value===e)?.label||e;return t?(0,m.jsx)(`span`,{className:`text-sm`,children:t}):(0,m.jsx)(f.EmptyValue,{})}return(0,m.jsxs)(f.Select,{...i,value:e,onValueChange:t,disabled:r||i.disabled,children:[(0,m.jsx)(f.SelectTrigger,{className:i.className,id:i.id,children:(0,m.jsx)(f.SelectValue,{placeholder:a?.placeholder||s(`common.selectOption`)})}),(0,m.jsx)(f.SelectContent,{position:`popper`,children:o.map(e=>(0,m.jsx)(f.SelectItem,{value:e.value,children:e.label},e.value))})]})}var M=o((()=>{k()})),N=s({DateField:()=>P});function P({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,m.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,m.jsx)(f.EmptyValue,{});let{inputType:a,...o}=i;return(0,m.jsx)(f.Input,{...o,type:`date`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var F=o((()=>{})),I=s({EmailField:()=>L});function L({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,m.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,m.jsx)(f.EmptyValue,{});let{inputType:s,...c}=a;return(0,m.jsx)(f.Input,{...c,type:`email`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`email@example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var R=o((()=>{})),ee=s({PhoneField:()=>te});function te({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,m.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,m.jsx)(f.EmptyValue,{});let{inputType:s,...c}=a;return(0,m.jsx)(f.Input,{...c,type:`tel`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`(555) 123-4567`,disabled:r||c.disabled,"aria-invalid":!!i})}var z=o((()=>{})),B=s({UrlField:()=>ne});function ne({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?e.startsWith(`http://`)||e.startsWith(`https://`)?(0,m.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,m.jsx)(`span`,{className:`text-sm`,children:e}):(0,m.jsx)(f.EmptyValue,{});let{inputType:s,...c}=a;return(0,m.jsx)(f.Input,{...c,type:`url`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`https://example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var V=o((()=>{})),re=s({CurrencyField:()=>U});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 U({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.currency||`USD`,l=s?.precision??2;if(r)return e==null?(0,m.jsx)(f.EmptyValue,{}):(0,m.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:H(Number(e),c)});let u=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(l)))};return(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:c===`USD`?`$`:c}),(0,m.jsx)(f.Input,{...o,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:u,placeholder:s?.placeholder||`0.00`,disabled:r||o.disabled,className:`pl-8 ${a||``}`,step:(10**-l).toFixed(l),"aria-invalid":!!i})]})}var W=o((()=>{})),G=s({TextAreaField:()=>K});function K({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,m.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,m.jsx)(f.EmptyValue,{})});let o=n||a.schema,s=o?.rows||4,c=o?.max_length,l=!!(a.mobileFullscreen??o?.mobile_fullscreen??a.mobile_fullscreen??a.schema?.mobile_fullscreen),[d,h]=(0,u.useState)(!1),[g,_]=(0,u.useState)(e??``),v=()=>{_(e??``),h(!0)},y=()=>h(!1),b=()=>{t(g),h(!1)},{inputType:x,mobileFullscreen:S,...C}=a;return(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(f.Textarea,{...C,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder,disabled:r||C.disabled,rows:s,maxLength:c,"aria-invalid":!!i,className:C.className}),l&&(0,m.jsx)(`button`,{type:`button`,onClick:v,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm transition-colors`,"aria-label":`Edit ${o?.label??`text`} fullscreen`,"data-testid":`textarea-fullscreen-toggle`,children:(0,m.jsx)(p.Maximize2,{className:`size-3.5`})}),c&&(0,m.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]}),l&&(0,m.jsx)(f.Dialog,{open:d,onOpenChange:h,children:(0,m.jsxs)(f.DialogContent,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`textarea-fullscreen-dialog`,children:[(0,m.jsx)(f.DialogHeader,{className:`p-4 border-b`,children:(0,m.jsx)(f.DialogTitle,{className:`text-base`,children:o?.label??`Edit text`})}),(0,m.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,m.jsx)(f.Textarea,{autoFocus:!0,value:g,onChange:e=>_(e.target.value),maxLength:c,placeholder:o?.placeholder,className:`h-full min-h-full resize-none text-base`,"data-testid":`textarea-fullscreen-input`})}),(0,m.jsxs)(f.DialogFooter,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[c&&(0,m.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[g.length,`/`,c]}),(0,m.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,m.jsxs)(f.Button,{type:`button`,variant:`ghost`,onClick:y,children:[(0,m.jsx)(p.X,{className:`size-4 mr-1`}),` Cancel`]}),(0,m.jsxs)(f.Button,{type:`button`,onClick:b,"data-testid":`textarea-fullscreen-save`,children:[(0,m.jsx)(p.Check,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var q=o((()=>{})),ie=s({RichTextField:()=>J});function J({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,m.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,m.jsx)(f.EmptyValue,{})});let o=n||a.schema,s=o?.rows||8;return(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,m.jsxs)(`span`,{children:[`Format: `,o?.format||`markdown`]}),(0,m.jsx)(`span`,{className:`italic`,children:`Rich text editor (basic)`})]}),(0,m.jsx)(f.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`Enter text...`,disabled:r||a.disabled,rows:s,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var Y=o((()=>{}));function ae(e){return typeof e==`string`?{field:e}:e}function oe(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function se(e){let t={};for(let n of e)switch(n.operator){case`eq`:t[n.field]=n.value;break;case`ne`:t[n.field]={$ne:n.value};break;case`gt`:t[n.field]={$gt:n.value};break;case`lt`:t[n.field]={$lt:n.value};break;case`gte`:t[n.field]={$gte:n.value};break;case`lte`:t[n.field]={$lte:n.value};break;case`contains`:t[n.field]={$contains:n.value};break;case`in`:t[n.field]={$in:n.value};break;case`notIn`:t[n.field]={$nin:n.value};break}return t}function X(e,t){let n={};for(let r of t){let t=e[r.field];t==null||t===``||(r.type===`boolean`?n[r.field]=!!t:r.type===`text`?n[r.field]={$contains:t}:n[r.field]=t)}return n}function ce({open:e,onOpenChange:t,title:n=`Select Record`,multiple:r=!1,dataSource:i,objectName:a,columns:o,displayField:s=`name`,idField:c=`id`,pageSize:l=le,value:d,onSelect:h,onSelectRecords:g,lookupFilters:_,cellRenderer:v,filterColumns:y,renderFilterBar:b,renderGrid:x}){let[S,C]=(0,u.useState)([]),[w,T]=(0,u.useState)(!1),[E,D]=(0,u.useState)(null),[O,k]=(0,u.useState)(0),[A,j]=(0,u.useState)(``),[M,N]=(0,u.useState)(1),P=(0,u.useRef)(null),[F,I]=(0,u.useState)(null),[L,R]=(0,u.useState)(`asc`),[ee,te]=(0,u.useState)(new Set),z=(0,u.useRef)(new Map),[B,ne]=(0,u.useState)(-1),V=(0,u.useRef)(null),[re,H]=(0,u.useState)(!1),[U,W]=(0,u.useState)({}),[G,K]=(0,u.useState)({}),q=(0,u.useRef)(null),[ie,J]=(0,u.useState)(``),Y=(0,u.useMemo)(()=>o&&o.length>0?o.map(ae):[{field:s,label:oe(s)}],[o,s]),ce=(0,u.useMemo)(()=>{if(y&&y.length>0)return y;if(_&&_.length>0)return _.map(e=>{let t=`text`;return typeof e.value==`boolean`?t=`boolean`:Array.isArray(e.value)?t=`select`:typeof e.value==`number`||e.operator===`gt`||e.operator===`lt`||e.operator===`gte`||e.operator===`lte`?t=`number`:(e.operator===`in`||e.operator===`notIn`)&&(t=`select`),{field:e.field,label:oe(e.field),type:t,...Array.isArray(e.value)?{options:e.value.map(e=>{if(typeof e==`object`&&e){let t=e;return{label:String(t.name||t.label||t.title||e),value:e}}return{label:String(e),value:e}})}:{}}})},[y,_]),fe=(0,u.useMemo)(()=>{let e=_?.length?se(_):{},t=ce?.length?X(U,ce):{},n={...e,...t};return Object.keys(n).length>0?n:void 0},[_,ce,U]),pe=Math.max(1,Math.ceil(O/l)),me=(0,u.useCallback)(async(e,t=1,n,r)=>{if(!(!i||!a)){T(!0),D(null);try{let o={$top:l,$skip:(t-1)*l};e&&e.trim()&&(o.$search=e.trim()),n&&(o.$orderby={[n.field]:n.direction});let s=r===void 0?fe:r;s&&Object.keys(s).length>0&&(o.$filter=s);let c=await i.find(a,o),u=c?.data??c??[];C(u),k(c?.total??u.length),ne(-1)}catch(e){D(e instanceof Error?e.message:String(e)),C([])}finally{T(!1)}}},[i,a,l,fe]),he=(0,u.useMemo)(()=>F?{field:F,direction:L}:null,[F,L]);(0,u.useEffect)(()=>{e||(j(``),N(1),D(null),C([]),I(null),R(`asc`),ne(-1),H(!1),W({}),K({}),J(``),te(new Set(r&&Array.isArray(d)?d:[])),z.current.clear())},[e]),(0,u.useEffect)(()=>{e&&me(A||void 0,M,he)},[e,M,he,fe]),(0,u.useEffect)(()=>{e&&r&&te(new Set(Array.isArray(d)?d:[]))},[e,r,d]);let ge=(0,u.useCallback)(e=>{j(e),N(1),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{me(e||void 0,1,he)},300)},[me,he]);(0,u.useEffect)(()=>()=>{P.current&&clearTimeout(P.current)},[]);let _e=(0,u.useCallback)(e=>{I(t=>t===e?(R(e=>e===`asc`?`desc`:`asc`),e):(R(`asc`),e)),N(1)},[]),ve=(0,u.useCallback)(e=>e[c]??e.id??e._id,[c]),ye=(0,u.useCallback)(e=>{let t=ve(e);return r?ee.has(t):d===t},[r,d,ee,ve]),be=(0,u.useCallback)(e=>{let n=ve(e);r?te(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),z.current.delete(n)):(r.add(n),z.current.set(n,e)),r}):(h(n),g?.([e]),t(!1))},[r,ve,h,g,t]),xe=(0,u.useCallback)(()=>{let e=Array.from(ee);h(e);let n=e.map(e=>z.current.get(e)).filter(Boolean);g?.(n),t(!1)},[ee,h,g,t]),Se=(0,u.useCallback)(()=>{N(e=>Math.max(1,e-1))},[]),Ce=(0,u.useCallback)(()=>{N(e=>Math.min(pe,e+1))},[pe]),we=(0,u.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(ie,10);!isNaN(t)&&t>=1&&t<=pe&&N(t),J(``)},[ie,pe]),Te=(0,u.useCallback)(e=>{S.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),ne(e=>Math.min(e+1,S.length-1))):e.key===`ArrowUp`?(e.preventDefault(),ne(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),B>=0&&B<S.length&&be(S[B])))},[S,B,be]);(0,u.useEffect)(()=>{if(B>=0&&V.current){let e=V.current.querySelector(`[data-row-index="${B}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[B]);let Ee=(0,u.useCallback)((e,t)=>{let n=e[t.field];if(t.type&&v){let e=v(t.type);if(e)return(0,m.jsx)(e,{value:n,field:{name:t.field,type:t.type}})}return n==null?``:typeof n==`object`?n.$numberDecimal?String(Number(n.$numberDecimal)):n.$oid?String(n.$oid):n.$date?new Date(n.$date).toLocaleDateString():n.name||n.label?String(n.name||n.label):JSON.stringify(n):typeof n==`boolean`?n?`Yes`:`No`:String(n)},[v]),De=(0,u.useCallback)(e=>F===e?L===`asc`?(0,m.jsx)(p.ArrowUp,{className:`ml-1 size-3`}):(0,m.jsx)(p.ArrowDown,{className:`ml-1 size-3`}):(0,m.jsx)(p.ArrowUpDown,{className:`ml-1 size-3 opacity-40`}),[F,L]),Oe=(0,u.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),q.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!q.current)return;let t=e.clientX-q.current.startX,n=Math.max(ue,q.current.startWidth+t);K(e=>({...e,[q.current.field]:n}))},i=()=>{q.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),Z=(0,u.useCallback)((e,t)=>{W(n=>({...n,[e]:t})),N(1)},[]),ke=(0,u.useCallback)(()=>{W({}),N(1)},[]),Ae=(0,u.useMemo)(()=>Object.values(U).filter(e=>e!=null&&e!==``).length,[U]),je=(0,u.useCallback)(e=>{let t=U[e.field],n=e.label||oe(e.field);switch(e.type){case`select`:return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,m.jsxs)(f.Select,{value:t==null?``:String(t),onValueChange:t=>Z(e.field,t),children:[(0,m.jsx)(f.SelectTrigger,{className:`h-8 text-xs`,children:(0,m.jsx)(f.SelectValue,{placeholder:`Filter ${n}`})}),(0,m.jsx)(f.SelectContent,{children:e.options?.map(e=>(0,m.jsx)(f.SelectItem,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,m.jsx)(f.Input,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>{let n=t.target.value;Z(e.field,n===``?``:Number(n))}})]});case`date`:return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,m.jsx)(f.Input,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>Z(e.field,t.target.value)})]});case`boolean`:return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,m.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,m.jsx)(f.Checkbox,{checked:!!t,onCheckedChange:t=>Z(e.field,!!t)}),(0,m.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Yes`})]})]});default:return(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,m.jsx)(f.Input,{className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>Z(e.field,t.target.value)})]})}},[U,Z]),Me=(0,u.useCallback)((e,t)=>e?`bg-primary/5 hover:bg-primary/10`:t%2==1?`bg-muted/20 hover:bg-accent/30`:`hover:bg-accent/30`,[]);return(0,m.jsx)(f.Dialog,{open:e,onOpenChange:t,children:(0,m.jsxs)(f.DialogContent,{className:`w-[95vw] sm:max-w-3xl lg:max-w-5xl max-h-[85vh] sm:max-h-[80vh] flex flex-col gap-0`,"data-testid":`record-picker-dialog`,children:[(0,m.jsx)(f.DialogHeader,{children:(0,m.jsxs)(f.DialogTitle,{children:[n,r&&(0,m.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,m.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,m.jsx)(p.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,m.jsx)(f.Input,{placeholder:`Search...`,value:A,onChange:e=>ge(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),w&&(0,m.jsx)(p.Loader2,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`record-picker-loading-indicator`})]}),ce&&ce.length>0&&(0,m.jsx)(`div`,{className:`py-2`,children:b?(0,m.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:b({filterColumns:ce,values:U,onChange:Z,onClear:ke,activeCount:Ae})}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,m.jsxs)(f.Button,{type:`button`,variant:Ae>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>H(e=>!e),children:[(0,m.jsx)(p.SlidersHorizontal,{className:`size-3.5`}),`Filters`,Ae>0&&(0,m.jsx)(`span`,{className:`inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary`,children:Ae})]}),Ae>0&&(0,m.jsxs)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:ke,children:[(0,m.jsx)(p.X,{className:`size-3`}),`Clear`]})]}),re&&(0,m.jsx)(`div`,{className:`mt-2 grid gap-3 sm:grid-cols-2 lg:grid-cols-3 border rounded-md p-3 bg-muted/30`,"data-testid":`record-picker-filter-panel`,children:ce.map(e=>(0,m.jsx)(`div`,{children:je(e)},e.field))})]})}),E&&(0,m.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,m.jsx)(p.AlertCircle,{className:`size-5 text-destructive`}),(0,m.jsx)(`p`,{className:`text-sm text-destructive`,children:E}),(0,m.jsx)(f.Button,{variant:`outline`,size:`sm`,onClick:()=>me(A||void 0,M,he),type:`button`,children:`Retry`})]}),x?(0,m.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:x({columns:Y,records:S,loading:w,totalCount:O,currentPage:M,pageSize:l,sortField:F,sortDirection:L,onSort:_e,onPageChange:N,onRowClick:be,isSelected:ye,multiple:r,idField:c,cellRenderer:v})}):(0,m.jsxs)(m.Fragment,{children:[w&&S.length===0&&!E&&(0,m.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0 border rounded-md`,role:`status`,"aria-live":`polite`,"data-testid":`record-picker-skeleton`,children:(0,m.jsxs)(f.Table,{children:[(0,m.jsx)(f.TableHeader,{children:(0,m.jsxs)(f.TableRow,{className:`bg-muted/40`,children:[r&&(0,m.jsx)(f.TableHead,{className:`w-10`}),Y.map(e=>(0,m.jsx)(f.TableHead,{children:(0,m.jsx)(f.Skeleton,{className:`h-4 w-20`})},e.field))]})}),(0,m.jsx)(f.TableBody,{children:Array.from({length:de},(e,t)=>(0,m.jsxs)(f.TableRow,{children:[r&&(0,m.jsx)(f.TableCell,{className:`w-10`,children:(0,m.jsx)(f.Skeleton,{className:`size-4 rounded`})}),Y.map(e=>(0,m.jsx)(f.TableCell,{children:(0,m.jsx)(f.Skeleton,{className:`h-4 w-full`})},e.field))]},t))})]})}),!w&&!E&&S.length===0&&(0,m.jsx)(`div`,{className:`py-8 text-center`,children:(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No records found`})}),!E&&S.length>0&&(0,m.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,tabIndex:0,onKeyDown:Te,role:`grid`,"aria-label":`Records`,children:[w&&(0,m.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,m.jsx)(p.Loader2,{className:`size-6 animate-spin text-muted-foreground`})}),(0,m.jsxs)(f.Table,{style:Object.keys(G).length>0?{tableLayout:`fixed`}:void 0,children:[(0,m.jsx)(f.TableHeader,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,m.jsxs)(f.TableRow,{children:[r&&(0,m.jsx)(f.TableHead,{className:`w-10`}),Y.map(e=>{let t=G[e.field];return(0,m.jsxs)(f.TableHead,{style:t?{width:`${t}px`,minWidth:`${t}px`}:e.width?{width:e.width}:void 0,className:`cursor-pointer select-none relative group text-xs font-semibold uppercase tracking-wider`,onClick:()=>_e(e.field),"aria-sort":F===e.field?L===`asc`?`ascending`:`descending`:`none`,children:[(0,m.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||oe(e.field),De(e.field)]}),(0,m.jsx)(`span`,{role:`separator`,"aria-orientation":`vertical`,className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize opacity-0 group-hover:opacity-100 bg-border hover:bg-primary/50 transition-opacity`,onMouseDown:t=>{let n=t.currentTarget.parentElement?.getBoundingClientRect();Oe(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,m.jsx)(f.TableBody,{ref:V,children:S.map((e,t)=>{let n=ve(e),i=ye(e),a=t===B;return(0,m.jsxs)(f.TableRow,{"data-row-index":t,className:(0,f.cn)(`cursor-pointer transition-colors`,Me(i,t),a&&`ring-2 ring-primary ring-inset`),onClick:()=>be(e),"data-testid":`record-row-${n}`,"aria-selected":i,children:[r&&(0,m.jsx)(f.TableCell,{className:`w-10`,children:i&&(0,m.jsx)(p.Check,{className:`size-4 text-primary`})}),Y.map(t=>(0,m.jsx)(f.TableCell,{className:`py-2.5`,children:Ee(e,t)},t.field))]},n??t)})})]})]}),!E&&O>0&&(0,m.jsxs)(`div`,{className:`flex items-center justify-between text-sm text-muted-foreground border-t pt-3 mt-2 px-1`,"data-testid":`record-picker-pagination`,children:[(0,m.jsxs)(`span`,{children:[O,` `,O===1?`record`:`records`,pe>1&&` · Page ${M} of ${pe}`]}),pe>1&&(0,m.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,m.jsx)(f.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:Se,disabled:M<=1,type:`button`,"aria-label":`Previous page`,children:(0,m.jsx)(p.ChevronLeft,{className:`size-4`})}),(0,m.jsx)(f.Input,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(M),value:ie,onChange:e=>J(e.target.value),onKeyDown:we,"aria-label":`Jump to page`,"data-testid":`record-picker-page-jump`}),(0,m.jsx)(f.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:Ce,disabled:M>=pe,type:`button`,"aria-label":`Next page`,children:(0,m.jsx)(p.ChevronRight,{className:`size-4`})})]})]})]}),r&&(0,m.jsx)(f.DialogFooter,{children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,m.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[ee.size,` selected`]}),(0,m.jsxs)(`div`,{className:`flex gap-2`,children:[(0,m.jsx)(f.Button,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:`Cancel`}),(0,m.jsx)(f.Button,{type:`button`,onClick:xe,children:`Confirm`})]})]})})]})})}var le,ue,de,fe=o((()=>{le=10,ue=60,de=5}));function pe(e){he=e}function me(){return he}var he,ge=o((()=>{})),_e=s({LookupField:()=>be});function ve(e,t,n,r){let i=e[n]??e.id??e._id,a=e[t]??e.label??e.name??String(i),o=r?e[r]:void 0;return{value:i,label:String(a),description:o,...e}}function ye(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function be({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=(0,u.useState)(!1),[s,c]=(0,u.useState)(``),{t:l}=O(),[d,h]=(0,u.useState)([]),[g,_]=(0,u.useState)(!1),[v,y]=(0,u.useState)(null),[b,x]=(0,u.useState)(0),S=(0,u.useRef)(null),[C,w]=(0,u.useState)([]),[T,E]=(0,u.useState)(-1),D=(0,u.useRef)(null),k=n||i.schema,A=k?.field,j=A&&typeof A==`object`&&(`reference_to`in A||`reference`in A||`type`in A)?A:k,M=j?.options||[],N=j?.multiple||!1,P=j?.display_field||j?.reference_field||`name`,F=j?.description_field,I=j?.id_field||`id`,L=j?.reference_to||j?.reference,R=j?.lookup_columns,ee=j?.lookup_page_size,te=j?.lookup_filters,z=(0,u.useMemo)(()=>{let e=j?.depends_on??j?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[j?.depends_on,j?.dependsOn]),B=i.dependentValues,ne=(0,u.useMemo)(()=>{if(!R)return;let e=[];for(let t of R)if(typeof t==`object`&&t.type){let n=ye(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[R]),V=(0,u.useContext)(Se),re=V?.dataSource??null,H=i.dataSource??k?.dataSource??j?.dataSource??re,U=(0,u.useMemo)(()=>B||(V?.formValues??V?.data??{}),[B,V?.formValues,V?.data]),W=(0,u.useMemo)(()=>z.length===0?!1:z.some(({field:e})=>{let t=U[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[z,U]),G=H!=null&&typeof H.find==`function`&&!!L,K=i.onCreateNew??k?.onCreateNew,[q,ie]=(0,u.useState)(!1),J=G?d:M,Y=(0,u.useMemo)(()=>{if(G||!s)return J;let e=s.toLowerCase();return J.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[G,J,s]);(0,u.useEffect)(()=>{E(-1)},[Y.length]);let ae=(0,u.useCallback)(async e=>{if(!(!H||!L)){if(W){h([]),x(0);return}_(!0),y(null);try{let t={$top:xe};if(e&&e.trim()&&(t.$search=e.trim()),z.length>0){let e={};for(let{field:t,param:n}of z){let r=U[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}Object.keys(e).length>0&&(t.$filter=e)}let n=await H.find(L,t),r=n?.data??n??[];h(r.map(e=>ve(e,P,I,F))),x(n?.total??r.length)}catch(e){y(e instanceof Error?e.message:String(e)),h([])}finally{_(!1)}}},[H,L,P,I,F,W,z,U]);(0,u.useEffect)(()=>{a&&G&&z.length>0&&ae(s||void 0)},[(0,u.useMemo)(()=>z.map(e=>`${e.param}=${U[e.field]??``}`).join(`|`),[z,U])]),(0,u.useEffect)(()=>{a&&G&&ae(s||void 0),a||(c(``),y(null),E(-1))},[a]);let oe=(0,u.useCallback)(e=>{c(e),G&&(S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{ae(e||void 0)},300))},[G,ae]);(0,u.useEffect)(()=>()=>{S.current&&clearTimeout(S.current)},[]);let se=(0,u.useCallback)(e=>M.find(t=>t.value===e)??d.find(t=>t.value===e)??C.find(t=>t.value===e),[M,d,C]),X=N?(Array.isArray(e)?e:[]).map(se).filter(Boolean):e?[se(e)].filter(Boolean):[],le=(0,u.useCallback)(n=>{if(N){let r=Array.isArray(e)?e:[];r.includes(n.value)?t(r.filter(e=>e!==n.value)):t([...r,n.value])}else t(n.value),o(!1)},[N,e,t]),ue=n=>{t(N?(Array.isArray(e)?e:[]).filter(e=>e!==n):null)},de=(0,u.useCallback)(e=>{w(e.map(e=>ve(e,P,I,F)))},[P,I,F]),fe=(0,u.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),E(e=>e<Y.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),E(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),T>=0&&T<Y.length&&le(Y[T]))},[Y,T,le]);return(0,u.useEffect)(()=>{T>=0&&D.current&&D.current.querySelector(`[data-lookup-index="${T}"]`)?.scrollIntoView({block:`nearest`})},[T]),r?X.length?N?(0,m.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:X.map((e,t)=>(0,m.jsx)(f.Badge,{variant:`outline`,children:e?.[P]||e?.label},t))}):(0,m.jsx)(`span`,{className:`text-sm`,children:X[0]?.[P]||X[0]?.label}):(0,m.jsx)(f.EmptyValue,{}):(0,m.jsxs)(`div`,{className:`space-y-2`,children:[X.length>0&&(0,m.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:X.map((e,t)=>(0,m.jsxs)(f.Badge,{variant:`outline`,className:`gap-1`,children:[e?.[P]||e?.label,(0,m.jsx)(`button`,{onClick:()=>ue(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":`Remove ${e?.[P]||e?.label}`,children:(0,m.jsx)(p.X,{className:`size-3`})})]},t))}),(0,m.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,m.jsxs)(f.Popover,{open:a,onOpenChange:e=>!W&&o(e),children:[(0,m.jsx)(f.PopoverTrigger,{asChild:!0,children:(0,m.jsxs)(f.Button,{variant:`outline`,className:`min-w-0 flex-1 justify-start text-left font-normal`,type:`button`,disabled:W||i.disabled,"data-testid":W?`lookup-trigger-gated`:void 0,title:W?`Select ${z.map(e=>e.field).join(`, `)} first`:void 0,children:[(0,m.jsx)(p.Search,{className:`mr-2 size-4`}),W?`Select ${z.map(e=>e.field).join(`, `)} first`:X.length===0?k?.placeholder||l(`common.select`):N?l(`table.selected`,{count:X.length}):l(`common.select`)]})}),(0,m.jsxs)(f.PopoverContent,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,m.jsx)(`div`,{className:`p-2`,children:(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(p.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,m.jsx)(f.Input,{placeholder:l(`common.search`)+`...`,value:s,onChange:e=>oe(e.target.value),onKeyDown:fe,className:`w-full pl-9 h-8 text-sm`}),g&&(0,m.jsx)(p.Loader2,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),v&&(0,m.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,m.jsx)(p.AlertCircle,{className:`size-5 text-destructive`}),(0,m.jsx)(`p`,{className:`text-sm text-destructive`,children:v}),(0,m.jsx)(f.Button,{variant:`outline`,size:`sm`,onClick:()=>ae(s||void 0),type:`button`,children:`Retry`})]}),g&&Y.length===0&&!v&&(0,m.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,m.jsx)(p.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`})]}),!v&&!(g&&Y.length===0)&&(0,m.jsx)(`div`,{ref:D,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,children:Y.length===0?(0,m.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,m.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No options found`}),K&&(0,m.jsxs)(f.Button,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,onClick:()=>{K(s),o(!1)},children:[(0,m.jsx)(p.Plus,{className:`size-4`}),`Create new`]})]}):(0,m.jsxs)(m.Fragment,{children:[Y.map((t,n)=>{let r=N?(Array.isArray(e)?e:[]).includes(t.value):e===t.value;return(0,m.jsxs)(`button`,{"data-lookup-index":n,role:`option`,"aria-selected":r,onClick:()=>le(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${n===T?`bg-accent text-accent-foreground`:r?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,m.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),r&&(0,m.jsx)(f.Badge,{variant:`default`,className:`ml-2 shrink-0`,children:`Selected`})]},t.value)}),G&&b>Y.length&&(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:[`Showing `,Y.length,` of `,b,` results.`]}),G&&b>Y.length&&(0,m.jsxs)(`button`,{type:`button`,className:`w-full text-center px-3 py-2 rounded-md text-sm font-medium text-primary hover:bg-accent flex items-center justify-center gap-1.5`,onClick:()=>{o(!1),ie(!0)},"data-testid":`show-all-results`,children:[(0,m.jsx)(p.TableProperties,{className:`size-3.5`}),`Show All Results (`,b,`)`]}),K&&(0,m.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:()=>{K(s),o(!1)},children:[(0,m.jsx)(p.Plus,{className:`size-3.5`}),`Create new`,s?` "${s}"`:``]})]})})]})]}),G&&(0,m.jsx)(f.Button,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,onClick:()=>ie(!0),"aria-label":`Browse all records`,title:`Browse all records`,"data-testid":`browse-all-records`,children:(0,m.jsx)(p.TableProperties,{className:`size-4`})})]}),G&&H&&L&&(0,m.jsx)(ce,{open:q,onOpenChange:ie,title:k?.label||`Select`,multiple:N,dataSource:H,objectName:L,columns:R,displayField:P,idField:I,pageSize:ee,value:e,onSelect:t,onSelectRecords:de,lookupFilters:te,cellRenderer:me(),filterColumns:ne})]})}var xe,Se,Ce=o((()=>{fe(),ge(),k(),xe=50,Se=g.SchemaRendererContext})),we=s({DateTimeField:()=>Te});function Te({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=new Date(e);return(0,m.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...o}=i;return(0,m.jsx)(f.Input,{...o,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var Ee=o((()=>{})),De=s({TimeField:()=>Oe});function Oe({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,m.jsx)(`span`,{className:`text-sm`,children:e||(0,m.jsx)(f.EmptyValue,{})});let{inputType:a,...o}=i;return(0,m.jsx)(f.Input,{...o,type:`time`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var Z=o((()=>{})),ke=s({PercentField:()=>Ae});function Ae({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.precision??2;if(r)return e==null?(0,m.jsx)(f.EmptyValue,{}):(0,m.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[(e*100).toFixed(c),`%`]});let l=e==null?``:e*100,u=e==null?0:e*100,d=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:n/100)},p=e=>{if(r||o.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**-c;return(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(f.Input,{...o,type:`number`,value:l,onChange:d,placeholder:s?.placeholder||`0`,disabled:r||o.disabled,className:`pr-8 ${a||``}`,step:(10**-c).toFixed(c),"aria-invalid":!!i}),(0,m.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,m.jsx)(f.Slider,{value:[u],onValueChange:p,min:0,max:100,step:h,disabled:r||o.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var je=o((()=>{})),Me=s({PasswordField:()=>Ne});function Ne({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let[o,s]=(0,u.useState)(!1),c=n||a.schema;if(r)return(0,m.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:l,...d}=a;return(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(f.Input,{...d,type:o?`text`:`password`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder,disabled:r||d.disabled,className:`pr-10 ${i||``}`}),(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent`,onClick:()=>s(!o),tabIndex:-1,children:o?(0,m.jsx)(p.EyeOff,{className:`size-4 text-gray-500`}):(0,m.jsx)(p.Eye,{className:`size-4 text-gray-500`})})]})}var Pe=o((()=>{})),Fe=s({FileField:()=>Ie});function Ie({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,u.useRef)(null),o=(0,u.useRef)(null),s=n||i.schema,c=s?.multiple||!1,l=s?.accept?s.accept.join(`,`):void 0,d=s?.maxSize,h=s?.capture??null,g=!l||l.split(`,`).some(e=>e.trim().startsWith(`image/`)||e.trim()===`image/*`||e.trim().startsWith(`.jp`)||e.trim().startsWith(`.png`)||e.trim().startsWith(`.gif`)||e.trim().startsWith(`.webp`)),v=typeof navigator<`u`&&(navigator.maxTouchPoints>0||/Mobi|Android/i.test(navigator.userAgent)),y=h===!1?!1:h??(g&&v?`environment`:null),[b,x]=(0,u.useState)(!1),[S,C]=(0,u.useState)([]),{upload:w}=(0,_.useUpload)(),[T,E]=(0,u.useState)({}),[D,O]=(0,u.useState)(!1),k=e?Array.isArray(e)?e:[e]:[],A=(0,u.useCallback)(async e=>{if(e.length===0)return;let n=[],r=e.filter(e=>{if(d&&e.size>d){let t=(d/(1024*1024)).toFixed(1);return n.push(`"${e.name}" exceeds max size (${t} MB)`),!1}return!0});if(C(n),r.length!==0){O(!0);try{let e=(await Promise.all(r.map(async e=>{try{let t=await w(e,{onProgress:t=>E(n=>({...n,[e.name]:t}))});return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}catch(t){return n.push(`Failed to upload "${e.name}": ${t.message}`),C([...n]),null}}))).filter(Boolean);if(e.length===0)return;t(c?[...k,...e]:e[0])}finally{O(!1),E({})}}},[k,c,t,d,w]),j=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!0)},[]),M=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1)},[]),N=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1);let t=Array.from(e.dataTransfer.files);if(l){let e=l.split(`,`).map(e=>e.trim().toLowerCase());A(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 A(t)},[l,A]);if(r)return e?(0,m.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,m.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,m.jsx)(f.EmptyValue,{});let P=e=>{A(Array.from(e.target.files||[]))},F=e=>{if(c){let n=k.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},I=e=>(e.mime_type||``).startsWith(`image/`);return(0,m.jsxs)(`div`,{className:i.className,children:[(0,m.jsx)(`input`,{ref:a,type:`file`,multiple:c,accept:l,onChange:P,className:`hidden`}),y&&(0,m.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,capture:y,onChange:P,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsxs)(`div`,{onDragOver:j,onDragLeave:M,onDrop:N,onClick:()=>a.current?.click(),className:`
2
2
  flex flex-col items-center justify-center gap-2 p-6
3
3
  border-2 border-dashed rounded-lg cursor-pointer
4
4
  transition-colors duration-200
5
5
  ${b?`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(),u.current?.click())},children:[(0,c.jsx)(s.Upload,{className:`size-8 ${b?`text-primary`:`text-muted-foreground`}`}),(0,c.jsxs)(`div`,{className:`text-center`,children:[(0,c.jsx)(`p`,{className:`text-sm font-medium`,children:b?`Drop files here`:`Drag & drop files here`}),(0,c.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,y?` • use the camera button below`:``]})]})]}),y&&(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,size:`sm`,className:`w-full`,onClick:e=>{e.stopPropagation(),d.current?.click()},"data-testid":`file-field-camera-button`,children:[(0,c.jsx)(s.Camera,{className:`size-4 mr-2`}),y===`user`?`Take selfie`:`Take photo`]}),te&&(0,c.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,c.jsx)(s.Loader2,{className:`size-3 animate-spin`}),(0,c.jsxs)(`span`,{children:[`Uploading…`,Object.keys(T).length>0&&` (${Math.round(Object.values(T).reduce((e,t)=>e+t,0)/Object.keys(T).length*100)}%)`]})]}),S.length>0&&(0,c.jsx)(`div`,{className:`space-y-0.5`,children:S.map((e,t)=>(0,c.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),D.length>0&&(0,c.jsx)(`div`,{className:`space-y-1`,children:D.map((e,t)=>(0,c.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[j(e)&&e.url?(0,c.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded flex-shrink-0`}):j(e)?(0,c.jsx)(s.ImageIcon,{className:`size-4 text-muted-foreground flex-shrink-0`}):(0,c.jsx)(s.File,{className:`size-4 text-muted-foreground flex-shrink-0`}),(0,c.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,c.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,c.jsx)(o.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),ie(t)},className:`h-6 w-6 p-0`,children:(0,c.jsx)(s.X,{className:`size-3`})})]},t))})]})]})}var de=e.t({ImageField:()=>pe}),fe=(0,i.lazy)(()=>Promise.resolve().then(()=>require(`./ImageCropperDialog-CK1apFXU.cjs`)).then(e=>e.n).then(e=>({default:e.ImageCropperDialog})));function pe({value:e,onChange:t,field:n,readonly:r,...a}){let u=(0,i.useRef)(null),d=n||a.schema,f=d?.multiple||!1,p=d?.accept?d.accept.join(`,`):`image/*`,m=d?.crop!==!1,[h,g]=(0,i.useState)(null),{upload:_}=(0,l.useUpload)(),[v,y]=(0,i.useState)(!1);if(r)return e?(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,c.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,c.jsx)(o.EmptyValue,{});let b=e?Array.isArray(e)?e:[e]:[],x=async e=>{let n=Array.from(e.target.files||[]);if(n.length!==0){y(!0);try{let e=await Promise.all(n.map(async e=>{let t=await _(e);return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}));t(f?[...b,...e]:e[0])}finally{y(!1),u.current&&(u.current.value=``)}}},S=e=>{if(f){let n=b.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},C=(0,i.useCallback)(async(e,n)=>{if(h){y(!0);try{let r=await _(e),i={name:r.name||n,original_name:n,size:r.size,mime_type:r.mimeType,url:r.url};if(f){let e=[...b];e[h.index]=i,t(e)}else t(i)}finally{y(!1),g(null)}}},[h,b,f,t,_]),w=(0,i.useCallback)(e=>{let t=b[e];t?.url&&g({index:e,src:t.url,name:t.name||`image-${e}.png`})},[b]);return(0,c.jsxs)(`div`,{className:a.className,children:[(0,c.jsx)(`input`,{ref:u,type:`file`,multiple:f,accept:p,onChange:x,className:`hidden`}),(0,c.jsxs)(`div`,{className:`space-y-2`,children:[b.length>0&&(0,c.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:b.map((e,t)=>(0,c.jsxs)(`div`,{className:`relative group`,children:[(0,c.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,c.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[m&&(0,c.jsx)(o.Button,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>w(t),className:`h-6 w-6 p-0`,"aria-label":`Crop image ${t+1}`,"data-testid":`image-field-crop-${t}`,children:(0,c.jsx)(s.Crop,{className:`size-3`})}),(0,c.jsx)(o.Button,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>S(t),className:`h-6 w-6 p-0`,children:(0,c.jsx)(s.X,{className:`size-3`})})]})]},t))}),(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,onClick:()=>u.current?.click(),className:`w-full`,disabled:v,"data-testid":`image-field-upload-button`,children:[v?(0,c.jsx)(s.Loader2,{className:`size-4 mr-2 animate-spin`}):(0,c.jsx)(s.Image,{className:`size-4 mr-2`}),v?`Uploading…`:b.length>0?`Add More Images`:`Upload Image`]})]}),m&&h&&(0,c.jsx)(i.Suspense,{fallback:null,children:(0,c.jsx)(fe,{open:!0,onOpenChange:e=>!e&&g(null),src:h.src,outputName:h.name,onConfirm:C})})]})}var me=e.t({LocationField:()=>he});function he({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,s=e&&typeof e==`object`?`${e.latitude||0}, ${e.longitude||0}`:``;return r?(0,c.jsx)(`span`,{className:`text-sm`,children:s||(0,c.jsx)(o.EmptyValue,{})}):(0,c.jsx)(o.Input,{type:`text`,value:s,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:a?.placeholder||`latitude, longitude`,disabled:r||i.disabled,className:i.className})}var ge=e.t({FormulaField:()=>_e});function _e({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,c.jsx)(o.EmptyValue,{className:n.className});let i;return 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,c.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var ve=e.t({SummaryField:()=>M});function M({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,c.jsx)(o.EmptyValue,{className:n.className});let i;return i=r===`count`?String(e):[`sum`,`avg`,`min`,`max`].includes(r)&&typeof e==`number`?e.toFixed(2):String(e),(0,c.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var ye=e.t({AutoNumberField:()=>N});function N({value:e,field:t,...n}){return e==null?(0,c.jsx)(o.EmptyValue,{className:n.className}):(0,c.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var be=e.t({UserField:()=>P});function P({value:e,onChange:t,field:n,readonly:r,...i}){let a=(n||i.schema)?.multiple||!1;if(r){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=Array.isArray(e)?e:[e];return(0,c.jsxs)(`div`,{className:`flex -space-x-2`,children:[t.slice(0,3).map((e,t)=>{let n=e.name||e.username||`User`;return(0,c.jsx)(o.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,c.jsx)(o.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,c.jsx)(o.Avatar,{className:`size-8 border-2 border-white`,children:(0,c.jsxs)(o.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(a){let n=l.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,c.jsxs)(`div`,{className:i.className,children:[l.length>0&&(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:l.map((e,t)=>{let n=e.name||e.username||`User`;return(0,c.jsxs)(o.Badge,{variant:`outline`,className:`gap-2 pr-1`,children:[(0,c.jsx)(o.Avatar,{className:`size-5`,children:(0,c.jsx)(o.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,c.jsx)(`span`,{className:`text-sm`,children:n}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`ml-1 rounded-full hover:bg-gray-200 p-0.5`,children:(0,c.jsx)(s.X,{className:`size-3`})})]},t)})}),(0,c.jsx)(`div`,{className:`text-sm text-gray-500 italic`,children:`User selection component requires integration with user management system`})]})}var xe=e.t({ObjectField:()=>F});function F({value:e,onChange:t,field:n,readonly:r,...a}){let s=n||a.schema,[l,u]=(0,i.useState)(()=>e==null?``:JSON.stringify(e,null,2)),[d,f]=(0,i.useState)(null);return(0,i.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]),r?e?(0,c.jsx)(`pre`,{className:(0,o.cn)(`text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40`,a.className),children:JSON.stringify(e,null,2)}):(0,c.jsx)(o.EmptyValue,{}):(0,c.jsxs)(`div`,{className:`space-y-1`,children:[(0,c.jsx)(o.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:s?.placeholder||`{
6
+ `,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),a.current?.click())},children:[(0,m.jsx)(p.Upload,{className:`size-8 ${b?`text-primary`:`text-muted-foreground`}`}),(0,m.jsxs)(`div`,{className:`text-center`,children:[(0,m.jsx)(`p`,{className:`text-sm font-medium`,children:b?`Drop files here`:`Drag & drop files here`}),(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,y?` • use the camera button below`:``]})]})]}),y&&(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,size:`sm`,className:`w-full`,onClick:e=>{e.stopPropagation(),o.current?.click()},"data-testid":`file-field-camera-button`,children:[(0,m.jsx)(p.Camera,{className:`size-4 mr-2`}),y===`user`?`Take selfie`:`Take photo`]}),D&&(0,m.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,m.jsx)(p.Loader2,{className:`size-3 animate-spin`}),(0,m.jsxs)(`span`,{children:[`Uploading…`,Object.keys(T).length>0&&` (${Math.round(Object.values(T).reduce((e,t)=>e+t,0)/Object.keys(T).length*100)}%)`]})]}),S.length>0&&(0,m.jsx)(`div`,{className:`space-y-0.5`,children:S.map((e,t)=>(0,m.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),k.length>0&&(0,m.jsx)(`div`,{className:`space-y-1`,children:k.map((e,t)=>(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[I(e)&&e.url?(0,m.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded flex-shrink-0`}):I(e)?(0,m.jsx)(p.ImageIcon,{className:`size-4 text-muted-foreground flex-shrink-0`}):(0,m.jsx)(p.File,{className:`size-4 text-muted-foreground flex-shrink-0`}),(0,m.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,m.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),F(t)},className:`h-6 w-6 p-0`,children:(0,m.jsx)(p.X,{className:`size-3`})})]},t))})]})]})}var Le=o((()=>{})),Re=s({ImageCropperDialog:()=>ze}),ze,Be=o((()=>{ze=({open:e,onOpenChange:t,src:n,outputType:r=`image/png`,outputName:i=`cropped.png`,onConfirm:a})=>{let o=(0,u.useRef)(null),s=(0,u.useRef)(null),[c,l]=(0,u.useState)(0),[d,h]=(0,u.useState)({x:0,y:0,width:100,height:100}),[g,_]=(0,u.useState)(null),[v,y]=(0,u.useState)(!1);(0,u.useEffect)(()=>{if(!e||!n)return;y(!1);let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>{s.current=t;let e=t.naturalWidth*.8,n=t.naturalHeight*.8;h({x:(t.naturalWidth-e)/2,y:(t.naturalHeight-n)/2,width:e,height:n}),l(0),y(!0)},t.onerror=()=>y(!1),t.src=n},[e,n]),(0,u.useEffect)(()=>{if(!v||!s.current||!o.current)return;let e=s.current,t=o.current,n=t.getContext(`2d`);if(!n)return;let r=480/e.naturalWidth,i=e.naturalHeight*r;t.width=480,t.height=i,n.clearRect(0,0,480,i),n.save(),n.translate(480/2,i/2),n.rotate(c*Math.PI/180);let a=c%180==0?480:i,l=c%180==0?i:480;n.drawImage(e,-a/2,-l/2,a,l),n.restore();let u=d.x*r,f=d.y*r,p=d.width*r,m=d.height*r;n.fillStyle=`rgba(0,0,0,0.45)`,n.fillRect(0,0,480,f),n.fillRect(0,f+m,480,i-f-m),n.fillRect(0,f,u,m),n.fillRect(u+p,f,480-u-p,m),n.strokeStyle=`#3b82f6`,n.lineWidth=2,n.strokeRect(u,f,p,m)},[v,d,c]);let b=(0,u.useCallback)(e=>{if(!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width;_({ox:(e.clientX-t.left)*n,oy:(e.clientY-t.top)*n,cx:d.x,cy:d.y}),e.target.setPointerCapture(e.pointerId)},[d]),x=(0,u.useCallback)(e=>{if(!g||!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-g.ox,i=(e.clientY-t.top)*n-g.oy,a=Math.max(0,Math.min(g.cx+r,s.current.naturalWidth-d.width)),c=Math.max(0,Math.min(g.cy+i,s.current.naturalHeight-d.height));h(e=>({...e,x:a,y:c}))},[g,d.width,d.height]),S=(0,u.useCallback)(()=>_(null),[]),C=(0,u.useCallback)(()=>l(e=>(e+90)%360),[]),w=(0,u.useCallback)(async()=>{if(!s.current)return;let e=s.current,n=document.createElement(`canvas`),o=d.width,l=d.height;n.width=c%180==0?o:l,n.height=c%180==0?l:o;let u=n.getContext(`2d`);if(!u)return;u.save(),u.translate(n.width/2,n.height/2),u.rotate(c*Math.PI/180),u.drawImage(e,d.x,d.y,o,l,-o/2,-l/2,o,l),u.restore();let f=await new Promise(e=>n.toBlob(e,r));f&&(a(f,i),t(!1))},[d,c,i,r,a,t]);return(0,m.jsx)(f.Dialog,{open:e,onOpenChange:t,children:(0,m.jsxs)(f.DialogContent,{className:`max-w-xl`,children:[(0,m.jsxs)(f.DialogHeader,{children:[(0,m.jsx)(f.DialogTitle,{children:`Crop & rotate image`}),(0,m.jsx)(f.DialogDescription,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,m.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[v?(0,m.jsx)(`canvas`,{ref:o,"data-testid":`image-cropper-canvas`,role:`img`,"aria-label":`Image crop preview`,className:`border rounded-md cursor-move touch-none max-w-full`,onPointerDown:b,onPointerMove:x,onPointerUp:S,onPointerCancel:S}):(0,m.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,m.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,m.jsxs)(`span`,{children:[`Crop: `,Math.round(d.width),` × `,Math.round(d.height),` px`]}),(0,m.jsxs)(`span`,{children:[`Rotation: `,c,`°`]})]})]}),(0,m.jsxs)(f.DialogFooter,{className:`flex justify-between sm:justify-between`,children:[(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,onClick:C,"data-testid":`image-cropper-rotate`,children:[(0,m.jsx)(p.RotateCw,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,m.jsxs)(`div`,{className:`flex gap-2`,children:[(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,m.jsxs)(f.Button,{type:`button`,onClick:w,disabled:!v,"data-testid":`image-cropper-confirm`,children:[(0,m.jsx)(p.Crop,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})}})),Ve=s({ImageField:()=>He});function He({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,u.useRef)(null),o=n||i.schema,s=o?.multiple||!1,c=o?.accept?o.accept.join(`,`):`image/*`,l=o?.crop!==!1,[d,h]=(0,u.useState)(null),{upload:g}=(0,_.useUpload)(),[v,y]=(0,u.useState)(!1);if(r)return e?(0,m.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,m.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,m.jsx)(f.EmptyValue,{});let b=e?Array.isArray(e)?e:[e]:[],x=async e=>{let n=Array.from(e.target.files||[]);if(n.length!==0){y(!0);try{let e=await Promise.all(n.map(async e=>{let t=await g(e);return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}));t(s?[...b,...e]:e[0])}finally{y(!1),a.current&&(a.current.value=``)}}},S=e=>{if(s){let n=b.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},C=(0,u.useCallback)(async(e,n)=>{if(d){y(!0);try{let r=await g(e),i={name:r.name||n,original_name:n,size:r.size,mime_type:r.mimeType,url:r.url};if(s){let e=[...b];e[d.index]=i,t(e)}else t(i)}finally{y(!1),h(null)}}},[d,b,s,t,g]),w=(0,u.useCallback)(e=>{let t=b[e];t?.url&&h({index:e,src:t.url,name:t.name||`image-${e}.png`})},[b]);return(0,m.jsxs)(`div`,{className:i.className,children:[(0,m.jsx)(`input`,{ref:a,type:`file`,multiple:s,accept:c,onChange:x,className:`hidden`}),(0,m.jsxs)(`div`,{className:`space-y-2`,children:[b.length>0&&(0,m.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:b.map((e,t)=>(0,m.jsxs)(`div`,{className:`relative group`,children:[(0,m.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,m.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[l&&(0,m.jsx)(f.Button,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>w(t),className:`h-6 w-6 p-0`,"aria-label":`Crop image ${t+1}`,"data-testid":`image-field-crop-${t}`,children:(0,m.jsx)(p.Crop,{className:`size-3`})}),(0,m.jsx)(f.Button,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>S(t),className:`h-6 w-6 p-0`,children:(0,m.jsx)(p.X,{className:`size-3`})})]})]},t))}),(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,onClick:()=>a.current?.click(),className:`w-full`,disabled:v,"data-testid":`image-field-upload-button`,children:[v?(0,m.jsx)(p.Loader2,{className:`size-4 mr-2 animate-spin`}):(0,m.jsx)(p.Image,{className:`size-4 mr-2`}),v?`Uploading…`:b.length>0?`Add More Images`:`Upload Image`]})]}),l&&d&&(0,m.jsx)(u.Suspense,{fallback:null,children:(0,m.jsx)(Ue,{open:!0,onOpenChange:e=>!e&&h(null),src:d.src,outputName:d.name,onConfirm:C})})]})}var Ue,We=o((()=>{Ue=(0,u.lazy)(()=>Promise.resolve().then(()=>(Be(),Re)).then(e=>({default:e.ImageCropperDialog})))})),Ge=s({LocationField:()=>Ke});function Ke({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=e&&typeof e==`object`?`${e.latitude||0}, ${e.longitude||0}`:``;return r?(0,m.jsx)(`span`,{className:`text-sm`,children:o||(0,m.jsx)(f.EmptyValue,{})}):(0,m.jsx)(f.Input,{type:`text`,value:o,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:a?.placeholder||`latitude, longitude`,disabled:r||i.disabled,className:i.className})}var qe=o((()=>{})),Je=s({FormulaField:()=>Ye});function Ye({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,m.jsx)(f.EmptyValue,{className:n.className});let i;return 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,m.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var Xe=o((()=>{})),Ze=s({SummaryField:()=>Qe});function Qe({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,m.jsx)(f.EmptyValue,{className:n.className});let i;return i=r===`count`?String(e):[`sum`,`avg`,`min`,`max`].includes(r)&&typeof e==`number`?e.toFixed(2):String(e),(0,m.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var $e=o((()=>{})),et=s({AutoNumberField:()=>tt});function tt({value:e,field:t,...n}){return e==null?(0,m.jsx)(f.EmptyValue,{className:n.className}):(0,m.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var nt=o((()=>{})),rt=s({UserField:()=>it});function it({value:e,onChange:t,field:n,readonly:r,...i}){let a=(n||i.schema)?.multiple||!1;if(r){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=Array.isArray(e)?e:[e];return(0,m.jsxs)(`div`,{className:`flex -space-x-2`,children:[t.slice(0,3).map((e,t)=>{let n=e.name||e.username||`User`;return(0,m.jsx)(f.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,m.jsx)(f.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,m.jsx)(f.Avatar,{className:`size-8 border-2 border-white`,children:(0,m.jsxs)(f.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,t.length-3]})})]})}let o=e?Array.isArray(e)?e:[e]:[],s=e=>{if(a){let n=o.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,m.jsxs)(`div`,{className:i.className,children:[o.length>0&&(0,m.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:o.map((e,t)=>{let n=e.name||e.username||`User`;return(0,m.jsxs)(f.Badge,{variant:`outline`,className:`gap-2 pr-1`,children:[(0,m.jsx)(f.Avatar,{className:`size-5`,children:(0,m.jsx)(f.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,m.jsx)(`span`,{className:`text-sm`,children:n}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>s(t),className:`ml-1 rounded-full hover:bg-gray-200 p-0.5`,children:(0,m.jsx)(p.X,{className:`size-3`})})]},t)})}),(0,m.jsx)(`div`,{className:`text-sm text-gray-500 italic`,children:`User selection component requires integration with user management system`})]})}var at=o((()=>{})),ot=s({ObjectField:()=>st});function st({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,[o,s]=(0,u.useState)(()=>e==null?``:JSON.stringify(e,null,2)),[c,l]=(0,u.useState)(null);return(0,u.useEffect)(()=>{try{if(e==null){s(``);return}let t=o?JSON.parse(o):null;JSON.stringify(t)!==JSON.stringify(e)&&s(JSON.stringify(e,null,2))}catch{s(JSON.stringify(e,null,2))}},[e,o]),r?e?(0,m.jsx)(`pre`,{className:(0,f.cn)(`text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40`,i.className),children:JSON.stringify(e,null,2)}):(0,m.jsx)(f.EmptyValue,{}):(0,m.jsxs)(`div`,{className:`space-y-1`,children:[(0,m.jsx)(f.Textarea,{value:o,onChange:e=>{let n=e.target.value;if(s(n),l(null),!n.trim()){t(null);return}try{t(JSON.parse(n))}catch{l(`Invalid JSON`)}},placeholder:a?.placeholder||`{
7
7
  "key": "value"
8
- }`,disabled:r||a.disabled,className:(0,o.cn)(`font-mono text-xs`,d?`border-red-500 focus-visible:ring-red-500`:``,a.className),rows:6}),d&&(0,c.jsx)(`p`,{className:`text-xs text-red-500`,children:d})]})}var Se=e.t({VectorField:()=>I});function I({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,c.jsx)(o.EmptyValue,{});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,c.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,c.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,c.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}var Ce=e.t({GridField:()=>L});function L({value:e,field:t,readonly:n,...r}){let i=(t||r.schema)?.columns||[];return!e||!Array.isArray(e)?(0,c.jsx)(o.EmptyValue,{}):n?(0,c.jsx)(`div`,{className:(0,o.cn)(`text-sm`,r.className),children:(0,c.jsxs)(`span`,{className:`text-foreground`,children:[e.length,` rows`]})}):(0,c.jsxs)(`div`,{className:(0,o.cn)(`border border-border rounded-lg overflow-hidden`,r.className),children:[(0,c.jsx)(`div`,{className:`overflow-auto max-h-60`,children:(0,c.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,c.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,c.jsx)(`tr`,{children:i.map((e,t)=>(0,c.jsx)(`th`,{className:`px-3 py-2 text-left text-xs font-medium text-muted-foreground`,children:e.label||e.name},t))})}),(0,c.jsx)(`tbody`,{className:`divide-y divide-border`,children:e.slice(0,5).map((e,t)=>(0,c.jsx)(`tr`,{className:`hover:bg-muted/50 transition-colors`,children:i.map((t,n)=>(0,c.jsx)(`td`,{className:`px-3 py-2 text-foreground`,children:e[t.name]==null?(0,c.jsx)(o.EmptyValue,{}):String(e[t.name])},n))},t))})]})}),e.length>5&&(0,c.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`]})]})}var we=e.t({ColorField:()=>R});function R({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,c.jsx)(`span`,{className:`text-sm`,children:e||(0,c.jsx)(o.EmptyValue,{})})]}):(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),disabled:r||i.disabled,className:`w-10 h-10 rounded border border-input cursor-pointer`}),(0,c.jsx)(o.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`#000000`,disabled:r||i.disabled,className:i.className,pattern:`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`})]})}var Te=e.t({SliderField:()=>z});function z({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,s=a?.min??0,l=a?.max??100,u=a?.step??1;return r?(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`span`,{className:`text-sm font-medium`,children:e??s}),(0,c.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,l]})]}):(0,c.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,c.jsx)(o.Slider,{value:[e??s],onValueChange:e=>t(e[0]),min:s,max:l,step:u,disabled:r||i.disabled,className:i.className}),(0,c.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??s})]})}var Ee=e.t({RatingField:()=>B});function B({value:e,onChange:t,field:n,readonly:r,className:a,...l}){let u=(n||l.schema)?.max??5,d=e??0,[f,p]=i.default.useState(null),m=f===null?d:f;return r?(0,c.jsxs)(`div`,{className:(0,o.cn)(`flex items-center gap-1`,a),children:[Array.from({length:u},(e,t)=>(0,c.jsx)(s.Star,{className:`w-5 h-5 ${t<d?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,c.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[d,` / `,u]})]}):(0,c.jsxs)(`div`,{className:(0,o.cn)(`flex items-center gap-1`,a),children:[Array.from({length:u},(e,n)=>(0,c.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:r||l.disabled,children:(0,c.jsx)(s.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,c.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[d,` / `,u]})]})}var De=e.t({CodeField:()=>V});function V({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,s=a?.language??`javascript`;return r?(0,c.jsx)(`pre`,{className:(0,o.cn)(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,c.jsx)(`code`,{children:e||(0,c.jsx)(o.EmptyValue,{})})}):(0,c.jsx)(o.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${s} code here...`,disabled:r||i.disabled,className:(0,o.cn)(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var Oe=e.t({AvatarField:()=>H});function H({value:e,onChange:t,field:n,readonly:r,...a}){let[l,u]=i.default.useState(!1),d=i.default.useRef(null),f=n||a.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 r?(0,c.jsxs)(o.Avatar,{className:`w-16 h-16`,children:[e&&(0,c.jsx)(o.AvatarImage,{src:e,alt:f?.label}),(0,c.jsx)(o.AvatarFallback,{children:h()})]}):(0,c.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,c.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,c.jsxs)(o.Avatar,{className:`w-16 h-16`,children:[e&&(0,c.jsx)(o.AvatarImage,{src:e,alt:f?.label}),(0,c.jsx)(o.AvatarFallback,{children:h()})]}),!r&&l&&e&&(0,c.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,c.jsx)(s.X,{className:`w-3 h-3`})})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(`input`,{ref:d,type:`file`,accept:`image/*`,onChange:p,className:`hidden`}),(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>d.current?.click(),disabled:r||a.disabled,children:[(0,c.jsx)(s.Upload,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,c.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var ke=e.t({AddressField:()=>U});function U({value:e,onChange:t,field:n,readonly:r,...i}){let a=e||{},s=(e,n)=>{t({...a,[e]:n})},l=e=>[e.street,e.city,[e.state,e.zipCode].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `);if(r){let e=l(a);return e?(0,c.jsx)(`span`,{className:`text-sm`,children:e}):(0,c.jsx)(o.EmptyValue,{})}return(0,c.jsxs)(`div`,{className:`space-y-3`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,c.jsx)(o.Input,{id:`street`,type:`text`,value:a.street||``,onChange:e=>s(`street`,e.target.value),placeholder:`123 Main St`,disabled:r||i.disabled,className:i.className})]}),(0,c.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,c.jsx)(o.Input,{id:`city`,type:`text`,value:a.city||``,onChange:e=>s(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,c.jsx)(o.Input,{id:`state`,type:`text`,value:a.state||``,onChange:e=>s(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,c.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,c.jsx)(o.Input,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>s(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,c.jsx)(o.Input,{id:`country`,type:`text`,value:a.country||``,onChange:e=>s(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var Ae=e.t({GeolocationField:()=>je});function je({value:e,onChange:t,field:n,readonly:r,...a}){let[l,u]=i.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`)};if(r){let e=m(d);return(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(s.MapPin,{className:`w-4 h-4 text-muted-foreground`}),e?(0,c.jsx)(`span`,{className:`text-sm`,children:e}):(0,c.jsx)(o.EmptyValue,{}),d.latitude&&d.longitude&&(0,c.jsx)(o.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,className:`p-0 h-auto`,children:`View on map`})]})}return(0,c.jsxs)(`div`,{className:`space-y-3`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:p,disabled:r||l,children:[(0,c.jsx)(s.Crosshair,{className:`w-4 h-4 mr-2`}),l?`Getting location...`:`Use Current Location`]}),d.latitude&&d.longitude&&(0,c.jsxs)(o.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,children:[(0,c.jsx)(s.MapPin,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,c.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,c.jsx)(o.Input,{id:`latitude`,type:`number`,value:d.latitude??``,onChange:e=>f(`latitude`,e.target.value),placeholder:`37.7749`,disabled:r||a.disabled,step:`any`,className:a.className})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(o.Label,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,c.jsx)(o.Input,{id:`longitude`,type:`number`,value:d.longitude??``,onChange:e=>f(`longitude`,e.target.value),placeholder:`-122.4194`,disabled:r||a.disabled,step:`any`})]})]}),d.accuracy&&(0,c.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,d.accuracy.toFixed(0),`m`]})]})}var Me=e.t({SignatureField:()=>Ne});function Ne({value:e,onChange:t,readonly:n}){let r=(0,i.useRef)(null),[a,l]=i.default.useState(!1),[u,d]=i.default.useState(!e);(0,i.useEffect)(()=>{if(e&&r.current){let t=r.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(n)return;l(!0),d(!1);let t=r.current;if(!t)return;let i=t.getContext(`2d`);if(!i)return;let a=t.getBoundingClientRect(),o=`touches`in e?e.touches[0].clientX-a.left:e.clientX-a.left,s=`touches`in e?e.touches[0].clientY-a.top:e.clientY-a.top;i.beginPath(),i.moveTo(o,s)},p=e=>{if(!a||n)return;let t=r.current;if(!t)return;let i=t.getContext(`2d`);if(!i)return;let o=t.getBoundingClientRect(),s=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,c=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;i.lineTo(s,c),i.strokeStyle=`#000`,i.lineWidth=2,i.lineCap=`round`,i.lineJoin=`round`,i.stroke()},m=()=>{if(!a)return;l(!1);let e=r.current;e&&t(e.toDataURL(`image/png`))};return n&&e?(0,c.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,c.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,c.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(`div`,{className:`border rounded bg-white`,children:(0,c.jsx)(`canvas`,{ref:r,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,c.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,c.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u?`Sign above`:`Signature captured`}),(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{let e=r.current;if(!e)return;let n=e.getContext(`2d`);n&&(n.clearRect(0,0,e.width,e.height),d(!0),t(``))},disabled:n||u,children:[(0,c.jsx)(s.Eraser,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var Pe=e.t({QRCodeField:()=>Fe});function Fe({value:e,onChange:t,field:n,readonly:r,...a}){let[l,u]=i.default.useState(!1),d=n||a.schema;return r?(0,c.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,c.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,c.jsx)(o.EmptyValue,{})}),e&&(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>u(!l),children:[(0,c.jsx)(s.QrCode,{className:`w-4 h-4 mr-2`}),l?`Hide`:`Show`,` QR`]})]}):(0,c.jsxs)(`div`,{className:`space-y-3`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(o.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:d?.placeholder||`Enter text for QR code`,disabled:r||a.disabled,className:a.className}),e&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,c.jsx)(s.Copy,{className:`w-4 h-4`})}),(0,c.jsx)(o.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>u(!l),children:(0,c.jsx)(s.QrCode,{className:`w-4 h-4`})})]})]}),l&&e&&(0,c.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,c.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,c.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var Ie=e.t({MasterDetailField:()=>Le});function Le({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let l=e||[],u=n||a.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,c.jsxs)(`div`,{className:(0,o.cn)(`space-y-2`,i),children:[l.length===0?(0,c.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No related records`}):l.map(e=>(0,c.jsxs)(`div`,{className:`flex items-center justify-between p-2 border rounded hover:bg-muted/50`,children:[(0,c.jsx)(`span`,{className:`text-sm`,children:e.label}),(0,c.jsx)(o.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>p(e),children:(0,c.jsx)(s.ExternalLink,{className:`w-4 h-4`})})]},e.id)),(0,c.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[l.length,` `,l.length===1?`record`:`records`]})]}):(0,c.jsxs)(`div`,{className:(0,o.cn)(`space-y-3`,i),children:[(0,c.jsxs)(`div`,{className:`space-y-2`,children:[l.map(e=>(0,c.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,c.jsx)(o.Badge,{variant:`outline`,children:e.id}),(0,c.jsx)(`span`,{className:`text-sm flex-1`,children:e.label})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,c.jsx)(o.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>p(e),children:(0,c.jsx)(s.ExternalLink,{className:`w-4 h-4`})}),(0,c.jsx)(o.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>f(e.id),disabled:a.disabled,children:(0,c.jsx)(s.X,{className:`w-4 h-4`})})]})]},e.id)),l.length===0&&(0,c.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20`,children:`No related records`})]}),(0,c.jsxs)(o.Button,{type:`button`,variant:`outline`,className:`w-full`,onClick:d,disabled:a.disabled,children:[(0,c.jsx)(s.Plus,{className:`w-4 h-4 mr-2`}),`Add `,u?.label||`Record`]})]})}function W(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 Re(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${t} ${e.toFixed(2)}`}}function ze(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 Be(e,t=0){return`${(e>-1&&e<1?e*100:e).toFixed(t)}%`}function G(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Ve(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`:K(t)}return a>1&&a<=7?`In ${a} days`:K(t)}function K(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`?Ve(n):n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function He(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 q({value:e}){let t=W(e);return t==null||t===``?(0,c.jsx)(o.EmptyValue,{}):(0,c.jsx)(`span`,{className:`truncate`,children:String(t)})}function Ue({value:e,field:t}){if(e==null)return(0,c.jsx)(o.EmptyValue,{});let n=W(e),r=t.precision??0,i=Number(n);return(0,c.jsx)(`span`,{className:`tabular-nums`,children:isNaN(i)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:r,maximumFractionDigits:r}).format(i)})}function We({value:e,field:t}){if(e==null)return(0,c.jsx)(o.EmptyValue,{});let n=W(e),r=t.currency||`USD`,i=Number(n);return(0,c.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(i)?String(n):Re(i,r)})}var Ge=/progress|completion/;function Ke({value:e,field:t}){if(e==null)return(0,c.jsx)(o.EmptyValue,{});let n=W(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,c.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=Ge.test(t?.name?.toLowerCase()||``),s=a?i:i>-1&&i<1?i*100:i,l=a?`${i.toFixed(r)}%`:Be(i,r),u=Math.max(0,Math.min(100,s));return(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted overflow-hidden flex-shrink-0`,role:`progressbar`,"aria-valuenow":u,"aria-valuemin":0,"aria-valuemax":100,children:(0,c.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${u}%`}})}),(0,c.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:l})]})}var qe=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function Je({value:e,field:t}){if(e==null)return(0,c.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,c.jsx)(o.EmptyValue,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,c.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,c.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,c.jsx)(s.Check,{className:`size-3 text-white`})}):(0,c.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):qe.has(n)&&!e?(0,c.jsxs)(o.Badge,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||G(n),` — Off`]}):(0,c.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,c.jsx)(o.Checkbox,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function Ye({value:e,field:t}){if(!e)return(0,c.jsx)(o.EmptyValue,{});let n=W(e),r=t,i=K(n,r.format||`relative`),a=typeof n==`string`?new Date(n):n,s=a instanceof Date&&!isNaN(a.getTime()),l=new Date;l.setHours(0,0,0,0);let u=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),d=(r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(u))&&s&&a<l,f=s?a.toISOString():String(n);return(0,c.jsx)(`span`,{className:`tabular-nums${d?` text-red-600`:``}`,title:f,children:i})}function Xe({value:e}){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=W(e),n=typeof t==`string`?new Date(t):t;if(!(n instanceof Date)||isNaN(n.getTime()))return(0,c.jsx)(o.EmptyValue,{});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,c.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,c.jsx)(`span`,{children:r}),(0,c.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var Ze={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`},J={gray:`bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800/50 dark:text-gray-200 dark:border-gray-700/60`,red:`bg-red-50 text-red-700 border-red-200 dark:bg-red-950/40 dark:text-red-300 dark:border-red-900/60`,orange:`bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950/40 dark:text-orange-300 dark:border-orange-900/60`,yellow:`bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-950/40 dark:text-yellow-300 dark:border-yellow-900/60`,green:`bg-green-50 text-green-700 border-green-200 dark:bg-green-950/40 dark:text-green-300 dark:border-green-900/60`,blue:`bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/40 dark:text-blue-300 dark:border-blue-900/60`,indigo:`bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-950/40 dark:text-indigo-300 dark:border-indigo-900/60`,purple:`bg-purple-50 text-purple-700 border-purple-200 dark:bg-purple-950/40 dark:text-purple-300 dark:border-purple-900/60`,pink:`bg-pink-50 text-pink-700 border-pink-200 dark:bg-pink-950/40 dark:text-pink-300 dark:border-pink-900/60`},Qe=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function $e(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return Qe[Math.abs(t)%Qe.length]}function et(e,t){if(e&&J[e])return J[e];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let n=String(t).toLowerCase().replace(/[\s-]/g,`_`),r=Ze[n];return r&&J[r]?J[r]:J[$e(n)]}function Y({value:e,field:t}){let n=t.options||[];if(e==null||e===``)return(0,c.jsx)(o.EmptyValue,{});if(Array.isArray(e))return(0,c.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let r=n.find(t=>t.value===e),i=r?.label||G(String(e));return(0,c.jsx)(o.Badge,{variant:`outline`,className:et(r?.color,e),children:i},t)})});let r=n.find(t=>t.value===e),i=r?.label||G(String(e));return(0,c.jsx)(o.Badge,{variant:`outline`,className:et(r?.color,e),children:i})}function tt({value:e}){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=String(W(e)??``),[n,r]=i.default.useState(!1);return(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,c.jsx)(o.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,c.jsx)(`a`,{href:`mailto:${t}`,onClick:e=>e.stopPropagation(),children:t})}),(0,c.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(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})},"aria-label":`Copy email`,children:n?(0,c.jsx)(s.Check,{className:`h-3 w-3 text-green-600`}):(0,c.jsx)(s.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function nt({value:e}){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=String(W(e)??``);return(0,c.jsx)(o.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,c.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function rt({value:e}){if(!e)return(0,c.jsx)(o.EmptyValue,{});let t=String(W(e)??``),[n,r]=i.default.useState(!1);return(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,c.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,c.jsx)(s.Phone,{className:`h-3 w-3`}),t]}),(0,c.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(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})},"aria-label":`Copy phone number`,children:n?(0,c.jsx)(s.Check,{className:`h-3 w-3 text-green-600`}):(0,c.jsx)(s.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function it({value:e,field:t}){if(!e)return(0,c.jsx)(o.EmptyValue,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,c.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,c.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function at({value:e}){return e?Array.isArray(e)?(0,c.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>(0,c.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,c.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,c.jsx)(`img`,{src:e.url||``,alt:e.name||`Image`,className:`size-10 rounded-md object-cover`}):(0,c.jsx)(o.EmptyValue,{})}function X({value:e,field:t}){if(e==null||e===``)return(0,c.jsx)(o.EmptyValue,{});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,c.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,c.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`,children:n},t)})}):typeof e==`object`&&e?(0,c.jsx)(`span`,{className:`truncate`,children:e.name||e.label||e.id||e._id||`[Object]`}):(0,c.jsx)(`span`,{className:`truncate`,children:r(e)})}function ot({value:e}){let t=W(e);return t==null||t===``?(0,c.jsx)(o.EmptyValue,{}):(0,c.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function Z({value:e}){if(!e)return(0,c.jsx)(o.EmptyValue,{});if(typeof e!=`object`)return(0,c.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,c.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,c.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`;return(0,c.jsx)(o.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,c.jsx)(o.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,c.jsx)(o.Avatar,{className:`size-8 border-2 border-white`,children:(0,c.jsxs)(o.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`;return(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(o.Avatar,{className:`size-8`,children:(0,c.jsx)(o.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,c.jsx)(`span`,{className:`truncate`,children:t})]})}var st=new Map;function Q(e,t){st.set(e,t)}function ct(e){return st.has(e)?st.get(e):{text:q,textarea:q,markdown:q,html:q,number:Ue,currency:We,percent:Ke,boolean:Je,date:Ye,datetime:Xe,time:q,select:Y,status:Y,lookup:X,master_detail:X,email:tt,url:nt,phone:rt,file:it,image:at,formula:ot,summary:ot,auto_number:q,user:Z,owner:Z,password:()=>(0,c.jsx)(`span`,{children:`••••••`}),location:q,object:()=>(0,c.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Object]`}),vector:()=>(0,c.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,c.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||q}Q(`lookup`,X),Q(`master_detail`,X),Q(`select`,Y),Q(`status`,Y),Q(`user`,Z),Q(`owner`,Z),n.r(ct);function lt(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 ut(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))} ${t[r]}`}function dt(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 ft(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=>ft(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>ft(e,t)):!0}function $(e){let t=({schema:t,className:n,value:r,...a})=>{let[o,s]=i.default.useState(r??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=i.default.useCallback(e=>{s(e),a.onChange&&a.onChange(e)},[a]),d=t?.readonly||t?.readOnly||!1;return(0,c.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,c.jsx)(`label`,{htmlFor:t.id,className:t.required?`after:content-['*'] after:ml-0.5 after:text-red-500`:``,children:t.label}),(0,c.jsx)(e,{value:o,onChange:u,field:l,readonly:d,className:n}),t?.description&&(0,c.jsx)(`p`,{className:`text-sm text-gray-500`,children:t.description})]})};return t.displayName=`FieldRenderer(${e.displayName||e.name||`Component`})`,t}var pt={text:()=>Promise.resolve().then(()=>u).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>D).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>f).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>m).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>g).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>v).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>re).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>ie).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>b).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>S).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>w).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>ee).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>ae).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>se).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>ne).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>ne).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>require(`./LookupField-CRKvDPFG.cjs`)).then(e=>e.n).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>Ie).then(e=>({default:e.MasterDetailField})),file:()=>Promise.resolve().then(()=>le).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>de).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>me).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>ge).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>ve).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>ye).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>be).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>be).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>xe).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>Se).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>Ce).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>we).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>Te).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>Ee).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>De).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>Oe).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>ke).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>Ae).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>Me).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>Pe).then(e=>({default:e.QRCodeField}))};function mt(e){let t=pt[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=i.default.lazy(t);a.ComponentRegistry.register(e,n,{namespace:`field`})}function ht(){Object.keys(pt).forEach(e=>{mt(e)})}function gt(){a.ComponentRegistry.register(`text`,$(d),{namespace:`field`}),a.ComponentRegistry.register(`textarea`,$(O),{namespace:`field`}),a.ComponentRegistry.register(`number`,$(p),{namespace:`field`}),a.ComponentRegistry.register(`boolean`,$(h),{namespace:`field`}),a.ComponentRegistry.register(`select`,$(_),{namespace:`field`}),a.ComponentRegistry.register(`date`,$(y),{namespace:`field`}),a.ComponentRegistry.register(`datetime`,$(A),{namespace:`field`}),a.ComponentRegistry.register(`time`,$(j),{namespace:`field`}),a.ComponentRegistry.register(`email`,$(x),{namespace:`field`}),a.ComponentRegistry.register(`phone`,$(C),{namespace:`field`}),a.ComponentRegistry.register(`url`,$(T),{namespace:`field`}),a.ComponentRegistry.register(`currency`,$(E),{namespace:`field`}),a.ComponentRegistry.register(`percent`,$(oe),{namespace:`field`}),a.ComponentRegistry.register(`password`,$(ce),{namespace:`field`}),a.ComponentRegistry.register(`markdown`,$(k),{namespace:`field`}),a.ComponentRegistry.register(`html`,$(k),{namespace:`field`}),a.ComponentRegistry.register(`lookup`,$(n.t),{namespace:`field`}),a.ComponentRegistry.register(`master_detail`,$(Le),{namespace:`field`}),a.ComponentRegistry.register(`file`,$(ue),{namespace:`field`}),a.ComponentRegistry.register(`image`,$(pe),{namespace:`field`}),a.ComponentRegistry.register(`location`,$(he),{namespace:`field`}),a.ComponentRegistry.register(`formula`,$(_e),{namespace:`field`}),a.ComponentRegistry.register(`summary`,$(M),{namespace:`field`}),a.ComponentRegistry.register(`auto_number`,$(N),{namespace:`field`}),a.ComponentRegistry.register(`user`,$(P),{namespace:`field`}),a.ComponentRegistry.register(`owner`,$(P),{namespace:`field`}),a.ComponentRegistry.register(`object`,$(F),{namespace:`field`}),a.ComponentRegistry.register(`vector`,$(I),{namespace:`field`}),a.ComponentRegistry.register(`grid`,$(L),{namespace:`field`}),a.ComponentRegistry.register(`color`,$(R),{namespace:`field`}),a.ComponentRegistry.register(`slider`,$(z),{namespace:`field`}),a.ComponentRegistry.register(`rating`,$(B),{namespace:`field`}),a.ComponentRegistry.register(`code`,$(V),{namespace:`field`}),a.ComponentRegistry.register(`avatar`,$(H),{namespace:`field`}),a.ComponentRegistry.register(`address`,$(U),{namespace:`field`}),a.ComponentRegistry.register(`geolocation`,$(je),{namespace:`field`}),a.ComponentRegistry.register(`signature`,$(Ne),{namespace:`field`}),a.ComponentRegistry.register(`qrcode`,$(Fe),{namespace:`field`})}ht(),exports.AddressField=U,exports.AutoNumberField=N,exports.AvatarField=H,exports.BooleanCellRenderer=Je,exports.BooleanField=h,exports.CodeField=V,exports.ColorField=R,exports.CurrencyCellRenderer=We,exports.CurrencyField=E,exports.DateCellRenderer=Ye,exports.DateField=y,exports.DateTimeCellRenderer=Xe,exports.DateTimeField=A,exports.EmailCellRenderer=tt,exports.EmailField=x,exports.FileCellRenderer=it,exports.FileField=ue,exports.FormulaCellRenderer=ot,exports.FormulaField=_e,exports.GeolocationField=je,exports.GridField=L,exports.ImageCellRenderer=at,exports.ImageCropperDialog=r.t,exports.ImageField=pe,exports.LocationField=he,exports.LookupCellRenderer=X,exports.LookupField=n.t,exports.MasterDetailField=Le,exports.NumberCellRenderer=Ue,exports.NumberField=p,exports.ObjectField=F,exports.PasswordField=ce,exports.PercentCellRenderer=Ke,exports.PercentField=oe,exports.PhoneCellRenderer=rt,exports.PhoneField=C,exports.QRCodeField=Fe,exports.RatingField=B,exports.RecordPickerDialog=n.i,exports.RichTextField=k,exports.SelectCellRenderer=Y,exports.SelectField=_,exports.SignatureField=Ne,exports.SliderField=z,exports.SummaryField=M,exports.TextAreaField=O,exports.TextCellRenderer=q,exports.TextField=d,exports.TimeField=j,exports.UrlCellRenderer=nt,exports.UrlField=T,exports.UserCellRenderer=Z,exports.UserField=P,exports.VectorField=I,exports.buildValidationRules=dt,exports.coerceToSafeValue=W,exports.evaluateCondition=ft,exports.formatCompactCurrency=ze,exports.formatCurrency=Re,exports.formatDate=K,exports.formatDateTime=He,exports.formatFileSize=ut,exports.formatPercent=Be,exports.formatRelativeDate=Ve,exports.getCellRenderer=ct,exports.humanizeLabel=G,exports.mapFieldTypeToFormType=lt,exports.registerAllFields=ht,exports.registerField=mt,exports.registerFieldRenderer=Q,exports.registerFields=gt;
8
+ }`,disabled:r||i.disabled,className:(0,f.cn)(`font-mono text-xs`,c?`border-red-500 focus-visible:ring-red-500`:``,i.className),rows:6}),c&&(0,m.jsx)(`p`,{className:`text-xs text-red-500`,children:c})]})}var ct=o((()=>{})),lt=s({VectorField:()=>ut});function ut({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,m.jsx)(f.EmptyValue,{});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,m.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,m.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,m.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}var dt=o((()=>{})),ft=s({GridField:()=>pt});function pt({value:e,field:t,readonly:n,...r}){let i=(t||r.schema)?.columns||[];return!e||!Array.isArray(e)?(0,m.jsx)(f.EmptyValue,{}):n?(0,m.jsx)(`div`,{className:(0,f.cn)(`text-sm`,r.className),children:(0,m.jsxs)(`span`,{className:`text-foreground`,children:[e.length,` rows`]})}):(0,m.jsxs)(`div`,{className:(0,f.cn)(`border border-border rounded-lg overflow-hidden`,r.className),children:[(0,m.jsx)(`div`,{className:`overflow-auto max-h-60`,children:(0,m.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,m.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,m.jsx)(`tr`,{children:i.map((e,t)=>(0,m.jsx)(`th`,{className:`px-3 py-2 text-left text-xs font-medium text-muted-foreground`,children:e.label||e.name},t))})}),(0,m.jsx)(`tbody`,{className:`divide-y divide-border`,children:e.slice(0,5).map((e,t)=>(0,m.jsx)(`tr`,{className:`hover:bg-muted/50 transition-colors`,children:i.map((t,n)=>(0,m.jsx)(`td`,{className:`px-3 py-2 text-foreground`,children:e[t.name]==null?(0,m.jsx)(f.EmptyValue,{}):String(e[t.name])},n))},t))})]})}),e.length>5&&(0,m.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`]})]})}var mt=o((()=>{})),ht=s({ColorField:()=>gt});function gt({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,m.jsx)(`span`,{className:`text-sm`,children:e||(0,m.jsx)(f.EmptyValue,{})})]}):(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),disabled:r||i.disabled,className:`w-10 h-10 rounded border border-input cursor-pointer`}),(0,m.jsx)(f.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`#000000`,disabled:r||i.disabled,className:i.className,pattern:`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`})]})}var _t=o((()=>{})),vt=s({SliderField:()=>yt});function yt({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.min??0,s=a?.max??100,c=a?.step??1;return r?(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`span`,{className:`text-sm font-medium`,children:e??o}),(0,m.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,s]})]}):(0,m.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,m.jsx)(f.Slider,{value:[e??o],onValueChange:e=>t(e[0]),min:o,max:s,step:c,disabled:r||i.disabled,className:i.className}),(0,m.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??o})]})}var bt=o((()=>{})),xt=s({RatingField:()=>St});function St({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.max??5,s=e??0,[c,l]=u.default.useState(null),d=c===null?s:c;return r?(0,m.jsxs)(`div`,{className:(0,f.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,t)=>(0,m.jsx)(p.Star,{className:`w-5 h-5 ${t<s?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,m.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]}):(0,m.jsxs)(`div`,{className:(0,f.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,n)=>(0,m.jsx)(`button`,{type:`button`,onClick:()=>t(n+1),onMouseEnter:()=>l(n+1),onMouseLeave:()=>l(null),className:`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded`,disabled:r||a.disabled,children:(0,m.jsx)(p.Star,{className:`w-5 h-5 transition-colors ${n<d?`fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500`:`text-muted-foreground hover:text-yellow-400`}`})},n)),(0,m.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]})}var Ct=o((()=>{})),wt=s({CodeField:()=>Tt});function Tt({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.language??`javascript`;return r?(0,m.jsx)(`pre`,{className:(0,f.cn)(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,m.jsx)(`code`,{children:e||(0,m.jsx)(f.EmptyValue,{})})}):(0,m.jsx)(f.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${o} code here...`,disabled:r||i.disabled,className:(0,f.cn)(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var Et=o((()=>{})),Dt=s({AvatarField:()=>Ot});function Ot({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=u.default.useState(!1),s=u.default.useRef(null),c=n||i.schema,l=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)},d=()=>{t(``)},h=()=>(c?.defaultName||c?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return r?(0,m.jsxs)(f.Avatar,{className:`w-16 h-16`,children:[e&&(0,m.jsx)(f.AvatarImage,{src:e,alt:c?.label}),(0,m.jsx)(f.AvatarFallback,{children:h()})]}):(0,m.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,m.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,m.jsxs)(f.Avatar,{className:`w-16 h-16`,children:[e&&(0,m.jsx)(f.AvatarImage,{src:e,alt:c?.label}),(0,m.jsx)(f.AvatarFallback,{children:h()})]}),!r&&a&&e&&(0,m.jsx)(`button`,{type:`button`,onClick:d,className:`absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90`,children:(0,m.jsx)(p.X,{className:`w-3 h-3`})})]}),(0,m.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,m.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,onChange:l,className:`hidden`}),(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>s.current?.click(),disabled:r||i.disabled,children:[(0,m.jsx)(p.Upload,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var kt=o((()=>{})),At=s({AddressField:()=>jt});function jt({value:e,onChange:t,field:n,readonly:r,...i}){let a=e||{},o=(e,n)=>{t({...a,[e]:n})},s=e=>[e.street,e.city,[e.state,e.zipCode].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `);if(r){let e=s(a);return e?(0,m.jsx)(`span`,{className:`text-sm`,children:e}):(0,m.jsx)(f.EmptyValue,{})}return(0,m.jsxs)(`div`,{className:`space-y-3`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,m.jsx)(f.Input,{id:`street`,type:`text`,value:a.street||``,onChange:e=>o(`street`,e.target.value),placeholder:`123 Main St`,disabled:r||i.disabled,className:i.className})]}),(0,m.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,m.jsx)(f.Input,{id:`city`,type:`text`,value:a.city||``,onChange:e=>o(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,m.jsx)(f.Input,{id:`state`,type:`text`,value:a.state||``,onChange:e=>o(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,m.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,m.jsx)(f.Input,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>o(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,m.jsx)(f.Input,{id:`country`,type:`text`,value:a.country||``,onChange:e=>o(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var Mt=o((()=>{})),Nt=s({GeolocationField:()=>Pt});function Pt({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=u.default.useState(!1),s=e||{},c=(e,n)=>{t({...s,[e]:n?Number(n):void 0})},l=()=>{if(!navigator.geolocation){console.error(`Geolocation is not supported by this browser`);return}o(!0),navigator.geolocation.getCurrentPosition(e=>{t({latitude:e.coords.latitude,longitude:e.coords.longitude,accuracy:e.coords.accuracy}),o(!1)},e=>{console.error(`Error getting location:`,e.message),o(!1)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},d=e=>!e.latitude||!e.longitude?``:`${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`,h=()=>{if(!s.latitude||!s.longitude)return;let e=`https://www.google.com/maps?q=${s.latitude},${s.longitude}`;window.open(e,`_blank`)};if(r){let e=d(s);return(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(p.MapPin,{className:`w-4 h-4 text-muted-foreground`}),e?(0,m.jsx)(`span`,{className:`text-sm`,children:e}):(0,m.jsx)(f.EmptyValue,{}),s.latitude&&s.longitude&&(0,m.jsx)(f.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,className:`p-0 h-auto`,children:`View on map`})]})}return(0,m.jsxs)(`div`,{className:`space-y-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:l,disabled:r||a,children:[(0,m.jsx)(p.Crosshair,{className:`w-4 h-4 mr-2`}),a?`Getting location...`:`Use Current Location`]}),s.latitude&&s.longitude&&(0,m.jsxs)(f.Button,{type:`button`,variant:`link`,size:`sm`,onClick:h,children:[(0,m.jsx)(p.MapPin,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,m.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,m.jsx)(f.Input,{id:`latitude`,type:`number`,value:s.latitude??``,onChange:e=>c(`latitude`,e.target.value),placeholder:`37.7749`,disabled:r||i.disabled,step:`any`,className:i.className})]}),(0,m.jsxs)(`div`,{children:[(0,m.jsx)(f.Label,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,m.jsx)(f.Input,{id:`longitude`,type:`number`,value:s.longitude??``,onChange:e=>c(`longitude`,e.target.value),placeholder:`-122.4194`,disabled:r||i.disabled,step:`any`})]})]}),s.accuracy&&(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,s.accuracy.toFixed(0),`m`]})]})}var Ft=o((()=>{})),It=s({SignatureField:()=>Lt});function Lt({value:e,onChange:t,readonly:n}){let r=(0,u.useRef)(null),[i,a]=u.default.useState(!1),[o,s]=u.default.useState(!e);(0,u.useEffect)(()=>{if(e&&r.current){let t=r.current.getContext(`2d`);if(t){let n=new Image;n.onload=()=>{t.drawImage(n,0,0),s(!1)},n.src=e}}},[e]);let c=e=>{if(n)return;a(!0),s(!1);let t=r.current;if(!t)return;let i=t.getContext(`2d`);if(!i)return;let o=t.getBoundingClientRect(),c=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,l=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;i.beginPath(),i.moveTo(c,l)},l=e=>{if(!i||n)return;let t=r.current;if(!t)return;let a=t.getContext(`2d`);if(!a)return;let o=t.getBoundingClientRect(),s=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,c=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;a.lineTo(s,c),a.strokeStyle=`#000`,a.lineWidth=2,a.lineCap=`round`,a.lineJoin=`round`,a.stroke()},d=()=>{if(!i)return;a(!1);let e=r.current;e&&t(e.toDataURL(`image/png`))};return n&&e?(0,m.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,m.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,m.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(`div`,{className:`border rounded bg-white`,children:(0,m.jsx)(`canvas`,{ref:r,width:400,height:200,className:`w-full touch-none cursor-crosshair`,onMouseDown:c,onMouseMove:l,onMouseUp:d,onMouseLeave:d,onTouchStart:c,onTouchMove:l,onTouchEnd:d})}),(0,m.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,m.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Sign above`:`Signature captured`}),(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{let e=r.current;if(!e)return;let n=e.getContext(`2d`);n&&(n.clearRect(0,0,e.width,e.height),s(!0),t(``))},disabled:n||o,children:[(0,m.jsx)(p.Eraser,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var Rt=o((()=>{})),zt=s({QRCodeField:()=>Bt});function Bt({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=u.default.useState(!1),s=n||i.schema;return r?(0,m.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,m.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,m.jsx)(f.EmptyValue,{})}),e&&(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:[(0,m.jsx)(p.QrCode,{className:`w-4 h-4 mr-2`}),a?`Hide`:`Show`,` QR`]})]}):(0,m.jsxs)(`div`,{className:`space-y-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(f.Input,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`Enter text for QR code`,disabled:r||i.disabled,className:i.className}),e&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,m.jsx)(p.Copy,{className:`w-4 h-4`})}),(0,m.jsx)(f.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:(0,m.jsx)(p.QrCode,{className:`w-4 h-4`})})]})]}),a&&e&&(0,m.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,m.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,m.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var Vt=o((()=>{})),Ht=s({MasterDetailField:()=>Ut});function Ut({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=e||[],s=n||a.schema,c=()=>{let e={id:`new-${Date.now()}`,label:`New Related Record`};t([...o,e])},l=e=>{t(o.filter(t=>t.id!==e))},u=e=>{console.log(`View detail:`,e)};return r?(0,m.jsxs)(`div`,{className:(0,f.cn)(`space-y-2`,i),children:[o.length===0?(0,m.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No related records`}):o.map(e=>(0,m.jsxs)(`div`,{className:`flex items-center justify-between p-2 border rounded hover:bg-muted/50`,children:[(0,m.jsx)(`span`,{className:`text-sm`,children:e.label}),(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,m.jsx)(p.ExternalLink,{className:`w-4 h-4`})})]},e.id)),(0,m.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[o.length,` `,o.length===1?`record`:`records`]})]}):(0,m.jsxs)(`div`,{className:(0,f.cn)(`space-y-3`,i),children:[(0,m.jsxs)(`div`,{className:`space-y-2`,children:[o.map(e=>(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,m.jsx)(f.Badge,{variant:`outline`,children:e.id}),(0,m.jsx)(`span`,{className:`text-sm flex-1`,children:e.label})]}),(0,m.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,m.jsx)(p.ExternalLink,{className:`w-4 h-4`})}),(0,m.jsx)(f.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(e.id),disabled:a.disabled,children:(0,m.jsx)(p.X,{className:`w-4 h-4`})})]})]},e.id)),o.length===0&&(0,m.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20`,children:`No related records`})]}),(0,m.jsxs)(f.Button,{type:`button`,variant:`outline`,className:`w-full`,onClick:c,disabled:a.disabled,children:[(0,m.jsx)(p.Plus,{className:`w-4 h-4 mr-2`}),`Add `,s?.label||`Record`]})]})}var Wt=o((()=>{}));b(),C(),E(),M(),F(),R(),z(),V(),W(),q(),Y(),Ce(),Ee(),Z(),je(),Pe(),Le(),We(),qe(),Xe(),$e(),nt(),at(),ct(),dt(),mt(),_t(),bt(),Ct(),Et(),kt(),Mt(),Ft(),Rt(),Vt(),Wt(),ge(),b(),C(),E(),M(),F(),Ee(),Z(),R(),z(),V(),W(),je(),Pe(),q(),Y(),Ce(),fe(),Le(),We(),Be(),qe(),Xe(),$e(),nt(),at(),ct(),dt(),mt(),_t(),bt(),Ct(),Et(),kt(),Mt(),Ft(),Rt(),Vt(),Wt();function Q(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 Gt(e,t=`USD`){try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e)}catch{return`${t} ${e.toFixed(2)}`}}function Kt(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 qt(e,t=0){return`${(e>-1&&e<1?e*100:e).toFixed(t)}%`}function Jt(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Yt(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`:Xt(t)}return a>1&&a<=7?`In ${a} days`:Xt(t)}function Xt(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`?Yt(n):n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function Zt(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 Qt({value:e}){let t=Q(e);return t==null||t===``?(0,m.jsx)(f.EmptyValue,{}):(0,m.jsx)(`span`,{className:`truncate`,children:String(t)})}function $t({value:e,field:t}){if(e==null)return(0,m.jsx)(f.EmptyValue,{});let n=Q(e),r=t.precision??0,i=Number(n);return(0,m.jsx)(`span`,{className:`tabular-nums`,children:isNaN(i)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:r,maximumFractionDigits:r}).format(i)})}function en({value:e,field:t}){if(e==null)return(0,m.jsx)(f.EmptyValue,{});let n=Q(e),r=t.currency||`USD`,i=Number(n);return(0,m.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(i)?String(n):Gt(i,r)})}var tn=/progress|completion/;function nn({value:e,field:t}){if(e==null)return(0,m.jsx)(f.EmptyValue,{});let n=Q(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,m.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=tn.test(t?.name?.toLowerCase()||``),o=a?i:i>-1&&i<1?i*100:i,s=a?`${i.toFixed(r)}%`:qt(i,r),c=Math.max(0,Math.min(100,o));return(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted overflow-hidden flex-shrink-0`,role:`progressbar`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,children:(0,m.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${c}%`}})}),(0,m.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:s})]})}var rn=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function an({value:e,field:t}){if(e==null)return(0,m.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,m.jsx)(f.EmptyValue,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,m.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,m.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,m.jsx)(p.Check,{className:`size-3 text-white`})}):(0,m.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):rn.has(n)&&!e?(0,m.jsxs)(f.Badge,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||Jt(n),` — Off`]}):(0,m.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,m.jsx)(f.Checkbox,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function on({value:e,field:t}){if(!e)return(0,m.jsx)(f.EmptyValue,{});let n=Q(e),r=t,i=Xt(n,r.format||`relative`),a=typeof n==`string`?new Date(n):n,o=a instanceof Date&&!isNaN(a.getTime()),s=new Date;s.setHours(0,0,0,0);let c=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),l=(r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(c))&&o&&a<s,u=o?a.toISOString():String(n);return(0,m.jsx)(`span`,{className:`tabular-nums${l?` text-red-600`:``}`,title:u,children:i})}function sn({value:e}){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=Q(e),n=typeof t==`string`?new Date(t):t;if(!(n instanceof Date)||isNaN(n.getTime()))return(0,m.jsx)(f.EmptyValue,{});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,m.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,m.jsx)(`span`,{children:r}),(0,m.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var cn={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`},ln={gray:`bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800/50 dark:text-gray-200 dark:border-gray-700/60`,red:`bg-red-50 text-red-700 border-red-200 dark:bg-red-950/40 dark:text-red-300 dark:border-red-900/60`,orange:`bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950/40 dark:text-orange-300 dark:border-orange-900/60`,yellow:`bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-950/40 dark:text-yellow-300 dark:border-yellow-900/60`,green:`bg-green-50 text-green-700 border-green-200 dark:bg-green-950/40 dark:text-green-300 dark:border-green-900/60`,blue:`bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/40 dark:text-blue-300 dark:border-blue-900/60`,indigo:`bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-950/40 dark:text-indigo-300 dark:border-indigo-900/60`,purple:`bg-purple-50 text-purple-700 border-purple-200 dark:bg-purple-950/40 dark:text-purple-300 dark:border-purple-900/60`,pink:`bg-pink-50 text-pink-700 border-pink-200 dark:bg-pink-950/40 dark:text-pink-300 dark:border-pink-900/60`},un=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function dn(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return un[Math.abs(t)%un.length]}function fn(e,t){if(e&&ln[e])return ln[e];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let n=String(t).toLowerCase().replace(/[\s-]/g,`_`),r=cn[n];return r&&ln[r]?ln[r]:ln[dn(n)]}function pn({value:e,field:t}){let n=t.options||[];if(e==null||e===``)return(0,m.jsx)(f.EmptyValue,{});if(Array.isArray(e))return(0,m.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let r=n.find(t=>t.value===e),i=r?.label||Jt(String(e));return(0,m.jsx)(f.Badge,{variant:`outline`,className:fn(r?.color,e),children:i},t)})});let r=n.find(t=>t.value===e),i=r?.label||Jt(String(e));return(0,m.jsx)(f.Badge,{variant:`outline`,className:fn(r?.color,e),children:i})}function mn({value:e}){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=String(Q(e)??``),[n,r]=u.default.useState(!1);return(0,m.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,m.jsx)(f.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,m.jsx)(`a`,{href:`mailto:${t}`,onClick:e=>e.stopPropagation(),children:t})}),(0,m.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(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})},"aria-label":`Copy email`,children:n?(0,m.jsx)(p.Check,{className:`h-3 w-3 text-green-600`}):(0,m.jsx)(p.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function hn({value:e}){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=String(Q(e)??``);return(0,m.jsx)(f.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,m.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function gn({value:e}){if(!e)return(0,m.jsx)(f.EmptyValue,{});let t=String(Q(e)??``),[n,r]=u.default.useState(!1);return(0,m.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,m.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,m.jsx)(p.Phone,{className:`h-3 w-3`}),t]}),(0,m.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(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})},"aria-label":`Copy phone number`,children:n?(0,m.jsx)(p.Check,{className:`h-3 w-3 text-green-600`}):(0,m.jsx)(p.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function _n({value:e,field:t}){if(!e)return(0,m.jsx)(f.EmptyValue,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,m.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,m.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function vn({value:e}){return e?Array.isArray(e)?(0,m.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>(0,m.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,m.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,m.jsx)(`img`,{src:e.url||``,alt:e.name||`Image`,className:`size-10 rounded-md object-cover`}):(0,m.jsx)(f.EmptyValue,{})}function yn({value:e,field:t}){if(e==null||e===``)return(0,m.jsx)(f.EmptyValue,{});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,m.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,m.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`,children:n},t)})}):typeof e==`object`&&e?(0,m.jsx)(`span`,{className:`truncate`,children:e.name||e.label||e.id||e._id||`[Object]`}):(0,m.jsx)(`span`,{className:`truncate`,children:r(e)})}function bn({value:e}){let t=Q(e);return t==null||t===``?(0,m.jsx)(f.EmptyValue,{}):(0,m.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function xn({value:e}){if(!e)return(0,m.jsx)(f.EmptyValue,{});if(typeof e!=`object`)return(0,m.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,m.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,m.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`;return(0,m.jsx)(f.Avatar,{className:`size-8 border-2 border-white`,title:n,children:(0,m.jsx)(f.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,m.jsx)(f.Avatar,{className:`size-8 border-2 border-white`,children:(0,m.jsxs)(f.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`;return(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(f.Avatar,{className:`size-8`,children:(0,m.jsx)(f.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,m.jsx)(`span`,{className:`truncate`,children:t})]})}var Sn=new Map;function Cn(e,t){Sn.set(e,t)}function wn(e){return Sn.has(e)?Sn.get(e):{text:Qt,textarea:Qt,markdown:Qt,html:Qt,number:$t,currency:en,percent:nn,boolean:an,date:on,datetime:sn,time:Qt,select:pn,status:pn,lookup:yn,master_detail:yn,email:mn,url:hn,phone:gn,file:_n,image:vn,formula:bn,summary:bn,auto_number:Qt,user:xn,owner:xn,password:()=>(0,m.jsx)(`span`,{children:`••••••`}),location:Qt,object:()=>(0,m.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Object]`}),vector:()=>(0,m.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,m.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||Qt}Cn(`lookup`,yn),Cn(`master_detail`,yn),Cn(`select`,pn),Cn(`status`,pn),Cn(`user`,xn),Cn(`owner`,xn),pe(wn);function Tn(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 En(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))} ${t[r]}`}function Dn(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 On(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=>On(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>On(e,t)):!0}function $(e){let t=({schema:t,className:n,value:r,...i})=>{let[a,o]=u.default.useState(r??t?.value??``),s={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},c=u.default.useCallback(e=>{o(e),i.onChange&&i.onChange(e)},[i]),l=t?.readonly||t?.readOnly||!1;return(0,m.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,m.jsx)(`label`,{htmlFor:t.id,className:t.required?`after:content-['*'] after:ml-0.5 after:text-red-500`:``,children:t.label}),(0,m.jsx)(e,{value:a,onChange:c,field:s,readonly:l,className:n}),t?.description&&(0,m.jsx)(`p`,{className:`text-sm text-gray-500`,children:t.description})]})};return t.displayName=`FieldRenderer(${e.displayName||e.name||`Component`})`,t}var kn={text:()=>Promise.resolve().then(()=>(b(),v)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>(q(),G)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>(C(),x)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>(E(),w)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>(M(),A)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>(F(),N)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>(Ee(),we)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>(Z(),De)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>(R(),I)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>(z(),ee)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>(V(),B)).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>(W(),re)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>(je(),ke)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>(Pe(),Me)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>(Y(),ie)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>(Y(),ie)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>(Ce(),_e)).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>(Wt(),Ht)).then(e=>({default:e.MasterDetailField})),file:()=>Promise.resolve().then(()=>(Le(),Fe)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>(We(),Ve)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>(qe(),Ge)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>(Xe(),Je)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>($e(),Ze)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>(nt(),et)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>(at(),rt)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>(at(),rt)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>(ct(),ot)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>(dt(),lt)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>(mt(),ft)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>(_t(),ht)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>(bt(),vt)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>(Ct(),xt)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>(Et(),wt)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>(kt(),Dt)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>(Mt(),At)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>(Ft(),Nt)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>(Rt(),It)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>(Vt(),zt)).then(e=>({default:e.QRCodeField}))};function An(e){let t=kn[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=u.default.lazy(t);d.ComponentRegistry.register(e,n,{namespace:`field`})}function jn(){Object.keys(kn).forEach(e=>{An(e)})}function Mn(){d.ComponentRegistry.register(`text`,$(y),{namespace:`field`}),d.ComponentRegistry.register(`textarea`,$(K),{namespace:`field`}),d.ComponentRegistry.register(`number`,$(S),{namespace:`field`}),d.ComponentRegistry.register(`boolean`,$(T),{namespace:`field`}),d.ComponentRegistry.register(`select`,$(j),{namespace:`field`}),d.ComponentRegistry.register(`date`,$(P),{namespace:`field`}),d.ComponentRegistry.register(`datetime`,$(Te),{namespace:`field`}),d.ComponentRegistry.register(`time`,$(Oe),{namespace:`field`}),d.ComponentRegistry.register(`email`,$(L),{namespace:`field`}),d.ComponentRegistry.register(`phone`,$(te),{namespace:`field`}),d.ComponentRegistry.register(`url`,$(ne),{namespace:`field`}),d.ComponentRegistry.register(`currency`,$(U),{namespace:`field`}),d.ComponentRegistry.register(`percent`,$(Ae),{namespace:`field`}),d.ComponentRegistry.register(`password`,$(Ne),{namespace:`field`}),d.ComponentRegistry.register(`markdown`,$(J),{namespace:`field`}),d.ComponentRegistry.register(`html`,$(J),{namespace:`field`}),d.ComponentRegistry.register(`lookup`,$(be),{namespace:`field`}),d.ComponentRegistry.register(`master_detail`,$(Ut),{namespace:`field`}),d.ComponentRegistry.register(`file`,$(Ie),{namespace:`field`}),d.ComponentRegistry.register(`image`,$(He),{namespace:`field`}),d.ComponentRegistry.register(`location`,$(Ke),{namespace:`field`}),d.ComponentRegistry.register(`formula`,$(Ye),{namespace:`field`}),d.ComponentRegistry.register(`summary`,$(Qe),{namespace:`field`}),d.ComponentRegistry.register(`auto_number`,$(tt),{namespace:`field`}),d.ComponentRegistry.register(`user`,$(it),{namespace:`field`}),d.ComponentRegistry.register(`owner`,$(it),{namespace:`field`}),d.ComponentRegistry.register(`object`,$(st),{namespace:`field`}),d.ComponentRegistry.register(`vector`,$(ut),{namespace:`field`}),d.ComponentRegistry.register(`grid`,$(pt),{namespace:`field`}),d.ComponentRegistry.register(`color`,$(gt),{namespace:`field`}),d.ComponentRegistry.register(`slider`,$(yt),{namespace:`field`}),d.ComponentRegistry.register(`rating`,$(St),{namespace:`field`}),d.ComponentRegistry.register(`code`,$(Tt),{namespace:`field`}),d.ComponentRegistry.register(`avatar`,$(Ot),{namespace:`field`}),d.ComponentRegistry.register(`address`,$(jt),{namespace:`field`}),d.ComponentRegistry.register(`geolocation`,$(Pt),{namespace:`field`}),d.ComponentRegistry.register(`signature`,$(Lt),{namespace:`field`}),d.ComponentRegistry.register(`qrcode`,$(Bt),{namespace:`field`})}jn(),exports.AddressField=jt,exports.AutoNumberField=tt,exports.AvatarField=Ot,exports.BooleanCellRenderer=an,exports.BooleanField=T,exports.CodeField=Tt,exports.ColorField=gt,exports.CurrencyCellRenderer=en,exports.CurrencyField=U,exports.DateCellRenderer=on,exports.DateField=P,exports.DateTimeCellRenderer=sn,exports.DateTimeField=Te,exports.EmailCellRenderer=mn,exports.EmailField=L,exports.FileCellRenderer=_n,exports.FileField=Ie,exports.FormulaCellRenderer=bn,exports.FormulaField=Ye,exports.GeolocationField=Pt,exports.GridField=pt,exports.ImageCellRenderer=vn,exports.ImageCropperDialog=ze,exports.ImageField=He,exports.LocationField=Ke,exports.LookupCellRenderer=yn,exports.LookupField=be,exports.MasterDetailField=Ut,exports.NumberCellRenderer=$t,exports.NumberField=S,exports.ObjectField=st,exports.PasswordField=Ne,exports.PercentCellRenderer=nn,exports.PercentField=Ae,exports.PhoneCellRenderer=gn,exports.PhoneField=te,exports.QRCodeField=Bt,exports.RatingField=St,exports.RecordPickerDialog=ce,exports.RichTextField=J,exports.SelectCellRenderer=pn,exports.SelectField=j,exports.SignatureField=Lt,exports.SliderField=yt,exports.SummaryField=Qe,exports.TextAreaField=K,exports.TextCellRenderer=Qt,exports.TextField=y,exports.TimeField=Oe,exports.UrlCellRenderer=hn,exports.UrlField=ne,exports.UserCellRenderer=xn,exports.UserField=it,exports.VectorField=ut,exports.buildValidationRules=Dn,exports.coerceToSafeValue=Q,exports.evaluateCondition=On,exports.formatCompactCurrency=Kt,exports.formatCurrency=Gt,exports.formatDate=Xt,exports.formatDateTime=Zt,exports.formatFileSize=En,exports.formatPercent=qt,exports.formatRelativeDate=Yt,exports.getCellRenderer=wn,exports.humanizeLabel=Jt,exports.mapFieldTypeToFormType=Tn,exports.registerAllFields=jn,exports.registerField=An,exports.registerFieldRenderer=Cn,exports.registerFields=Mn;