@object-ui/fields 13.1.0 → 14.0.0
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 +97 -0
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1776 -1194
- package/dist/widgets/CapabilityMultiSelectField.d.ts +11 -0
- package/dist/widgets/CapabilityMultiSelectField.test.d.ts +0 -0
- package/dist/widgets/FilterConditionField.d.ts +4 -0
- package/dist/widgets/ObjectRefField.d.ts +4 -0
- package/dist/widgets/RecipientPickerField.d.ts +4 -0
- package/package.json +9 -9
- package/src/FieldEditWidget.tsx +3 -0
- package/src/index.tsx +26 -0
- package/src/widgets/CapabilityMultiSelectField.test.tsx +143 -0
- package/src/widgets/CapabilityMultiSelectField.tsx +204 -0
- package/src/widgets/FilterConditionField.tsx +343 -0
- package/src/widgets/ObjectRefField.tsx +106 -0
- package/src/widgets/RecipientPickerField.tsx +150 -0
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},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/i18n"),p=require("@object-ui/components"),m=require("lucide-react"),h=require("@object-ui/react"),g=require("react/jsx-runtime"),_=require("@object-ui/providers"),v=require("react-markdown");v=l(v,1);let y=require("remark-gfm");y=l(y,1);let b=require("rehype-sanitize");b=l(b,1);var x=s({TextField:()=>S});function S({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})});let o=a?.rows,{inputType:s,...c}=i;return o&&o>1?(0,g.jsx)(p.Textarea,{...c,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled}):(0,g.jsx)(p.Input,{...c,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled})}var C=o((()=>{})),w=s({NumberField:()=>T});function T({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,o=a?.scale,{inputType:s,...c}=i;return(0,g.jsx)(p.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 E=o((()=>{})),ee=s({BooleanField:()=>D});function D({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,g.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:d,...f}=i;return o===`checkbox`?(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.Checkbox,{...f,id:c,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||f.disabled}),(0,g.jsx)(p.Label,{htmlFor:c,className:`sr-only`,children:l})]}):(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.Switch,{...f,id:c,checked:!!e,onCheckedChange:t,disabled:r||f.disabled}),(0,g.jsx)(p.Label,{htmlFor:c,className:`sr-only`,children:l})]})}var O=o((()=>{})),k,te,A=o((()=>{k={"common.selectOption":`Select an option`,"common.select":`Select...`,"common.search":`Search`,"common.loading":`Loading...`,"common.noResults":`No results found`,"common.cancel":`Cancel`,"common.confirm":`Confirm`,"table.selected":`{{count}} selected`,"table.search":`Search...`,"lookup.loading":`Loading…`,"lookup.noOptions":`No options found`,"lookup.noRecords":`No records found`,"lookup.recentlyUsed":`Recently used`,"lookup.allResults":`All results`,"lookup.createNew":`Create new`,"lookup.createNamed":`Create new "{{name}}"`,"lookup.showingResults":`Showing {{shown}} of {{total}} results`,"lookup.showAllResults":`Show all results ({{count}})`,"lookup.selectedBadge":`Selected`,"lookup.browseAll":`Browse all records`,"lookup.remove":`Remove {{label}}`,"lookup.selectFirst":`Select {{fields}} first`,"lookup.selectRecord":`Select record`,"lookup.recordCount":`{{count}} records`,"lookup.recordCountOne":`1 record`,"lookup.pageOf":`Page {{current}} of {{total}}`,"lookup.filters":`Filters`,"lookup.clear":`Clear`,"lookup.yes":`Yes`,"lookup.filterPlaceholder":`Filter {{label}}`,"lookup.prevPage":`Previous page`,"lookup.nextPage":`Next page`,"lookup.jumpToPage":`Jump to page`,"lookup.retry":`Retry`},te=(0,f.createSafeTranslation)(k,`common.selectOption`)})),ne=s({SelectField:()=>j});function j({value:e,onChange:t,field:n,readonly:r,schema:i,dependentValues:a,dependsOn:o,emptyHint:s,dataSource:c,...l}){let f=n||i,m=f?.options||[],{t:_}=te(),v=l.name||f?.name||l.id||``,y=(0,u.useContext)(h.SchemaRendererContext),b=(0,u.useMemo)(()=>a??y?.formValues??y?.data??{},[a,y?.formValues,y?.data]),x=(0,h.usePredicateScope)(),S=f?.dependsOn??o,C=(0,u.useMemo)(()=>(0,d.resolveDependsOnFields)(S),[S]),w=(0,u.useMemo)(()=>C.length>0&&(0,d.isOptionGroupGated)(S,b),[C,S,b]),T=(0,u.useMemo)(()=>w?[]:(0,d.resolveVisibleOptions)(m,b,x),[w,m,b,x]);if((0,u.useEffect)(()=>{r||e==null||e===``||(0,d.isValueStillOffered)(e,T)||t?.(void 0)},[T,w]),r){let t=m.find(t=>t.value===e)?.label||e;return t?(0,g.jsx)(`span`,{className:`text-sm`,children:t}):(0,g.jsx)(p.EmptyValue,{})}if(T.length===0){let e=w?`Select ${C.join(` / `)} first`:`No options available`;return(0,g.jsx)(`div`,{"data-testid":v?`select-empty-${v}`:void 0,className:`flex h-9 w-full items-center rounded-md border border-input bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:e})}return(0,g.jsxs)(p.Select,{...l,value:e,onValueChange:t,disabled:r||l.disabled,children:[(0,g.jsx)(p.SelectTrigger,{className:l.className,id:l.id,"data-testid":v?`select-trigger-${v}`:void 0,children:(0,g.jsx)(p.SelectValue,{placeholder:f?.placeholder||_(`common.selectOption`)})}),(0,g.jsx)(p.SelectContent,{position:`popper`,children:T.map(e=>(0,g.jsx)(p.SelectItem,{value:e.value,"data-testid":`select-option-${e.value}`,children:e.label},e.value))})]})}var M=o((()=>{A()}));function N(e){if(!(e.disabled||e.readOnly))try{e.showPicker?.()}catch{}}var re=o((()=>{})),P=s({DateField:()=>F});function F({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,g.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,g.jsx)(p.EmptyValue,{});let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`date`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{N(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var ie=o((()=>{re()})),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,g.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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((()=>{})),z=s({PhoneField:()=>B});function B({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,g.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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 V=o((()=>{})),H=s({UrlField:()=>U});function U({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,g.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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 W=o((()=>{})),G=o((()=>{})),K=s({CurrencyField:()=>q});function ae(e,t,n){if(t)try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return e.toFixed(n)}}function q({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,{currency:c}=(0,f.useLocalization)(),l=(0,f.resolveFieldCurrency)(s,c),u=s?.precision??2;if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:ae(Number(e),l,u)});let d=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(u)))},m=l?l===`USD`?`$`:l:``;return(0,g.jsxs)(`div`,{className:`relative`,children:[m&&(0,g.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:m}),(0,g.jsx)(p.Input,{...o,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:d,placeholder:s?.placeholder||`0.00`,disabled:r||o.disabled,className:`${m?`pl-8`:``} ${a||``}`,step:(10**-u).toFixed(u),"aria-invalid":!!i})]})}var oe=o((()=>{G()})),se=s({TextAreaField:()=>J});function J({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,g.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,g.jsx)(p.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,f]=(0,u.useState)(!1),[h,_]=(0,u.useState)(e??``),v=()=>{_(e??``),f(!0)},y=()=>f(!1),b=()=>{t(h),f(!1)},{inputType:x,mobileFullscreen:S,...C}=a;return(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.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,g.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,g.jsx)(m.Maximize2,{className:`size-3.5`})}),c&&(0,g.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,g.jsx)(p.Dialog,{open:d,onOpenChange:f,children:(0,g.jsxs)(p.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,g.jsx)(p.DialogHeader,{className:`p-4 border-b`,children:(0,g.jsx)(p.DialogTitle,{className:`text-base`,children:o?.label??`Edit text`})}),(0,g.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,g.jsx)(p.Textarea,{autoFocus:!0,value:h,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,g.jsxs)(p.DialogFooter,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[c&&(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[h.length,`/`,c]}),(0,g.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,onClick:y,children:[(0,g.jsx)(m.X,{className:`size-4 mr-1`}),` Cancel`]}),(0,g.jsxs)(p.Button,{type:`button`,onClick:b,"data-testid":`textarea-fullscreen-save`,children:[(0,g.jsx)(m.Check,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var ce=o((()=>{})),Y=s({RichTextField:()=>X});function X({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let{t:o}=(0,h.useObjectTranslation)();if(r)return(0,g.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,g.jsx)(p.EmptyValue,{})});let s=n||a.schema,c=s?.rows||8,l=s?.format||`markdown`;return(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,g.jsx)(`span`,{children:o(`fields.richText.format`,{format:l,defaultValue:`Format: ${l}`})}),(0,g.jsx)(`span`,{className:`italic`,children:o(`fields.richText.basicEditorHint`,{defaultValue:`Rich text editor (basic)`})})]}),(0,g.jsx)(p.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||o(`fields.richText.placeholder`,{defaultValue:`Enter text...`}),disabled:r||a.disabled,rows:c,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var le=o((()=>{}));function ue(e){let{dataSource:t,objectName:n,enabled:r=!0,pageSize:i=50,paginate:a=!1,filter:o,expand:s,searchFields:c,debounceMs:l=300}=e,[d,f]=(0,u.useState)([]),[p,m]=(0,u.useState)(!1),[h,g]=(0,u.useState)(null),[_,v]=(0,u.useState)(0),[y,b]=(0,u.useState)(1),[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)(null),T=(0,u.useRef)(null),E=(0,u.useMemo)(()=>o&&Object.keys(o).length?JSON.stringify(o):``,[o]),ee=(0,u.useMemo)(()=>s?.length?s.join(`,`):``,[s]),D=(0,u.useMemo)(()=>c?.length?c.join(`,`):``,[c]),O=!!r&&!!t&&typeof t.find==`function`&&!!n,k=(0,u.useCallback)(async(e,r,l)=>{if(!(!O||!t||!n)){m(!0),g(null);try{let u={$top:i};a&&(u.$skip=(r-1)*i),e&&e.trim()&&(u.$search=e.trim()),c&&c.length>0&&(u.$searchFields=c),l&&(u.$orderby={[l.field]:l.direction}),o&&Object.keys(o).length>0&&(u.$filter=o),s&&s.length>0&&(u.$expand=s);let d=await t.find(n,u),p=d?.data??d??[];f(p),v(d?.total??p.length)}catch(e){g(e instanceof Error?e.message:String(e)),f([])}finally{m(!1)}}},[O,t,n,i,a,E,ee,D]);(0,u.useEffect)(()=>{O&&k(x,y,C)},[O,y,C,k]),(0,u.useEffect)(()=>{r||(f([]),g(null),S(``),b(1),w(null))},[r]),(0,u.useEffect)(()=>()=>{T.current&&clearTimeout(T.current)},[]);let te=(0,u.useCallback)(e=>{S(e),b(1),T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{k(e,1,C)},l)},[k,C,l]),A=(0,u.useCallback)(e=>{b(e)},[]),ne=(0,u.useCallback)(e=>{w(t=>t&&t.field===e?{field:e,direction:t.direction===`asc`?`desc`:`asc`}:{field:e,direction:`asc`}),b(1)},[]),j=(0,u.useCallback)(e=>{w(e),b(1)},[]),M=(0,u.useCallback)(()=>{T.current&&clearTimeout(T.current),f([]),g(null),S(``),b(1),w(null)},[]),N=(0,u.useCallback)(()=>{k(x,y,C)},[k,x,y,C]);return{records:d,loading:p,error:h,total:_,totalPages:Math.max(1,Math.ceil(_/Math.max(1,i))),page:y,search:x,sort:C,setPage:A,setSearch:te,toggleSort:ne,setSort:j,reset:M,refetch:N}}var de=o((()=>{}));function fe(e){return typeof e==`string`?{field:e}:e}function pe(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function me(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 he(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 ge({open:e,onOpenChange:t,title:n=`Select Record`,multiple:r=!1,dataSource:i,objectName:a,columns:o,displayField:s=`name`,titleFormat:c,idField:l=`id`,pageSize:d=_e,value:f,onSelect:h,onSelectRecords:_,lookupFilters:v,baseFilter:y,cellRenderer:b,filterColumns:x,renderFilterBar:S,renderGrid:C}){let{t:w}=te(),[T,E]=(0,u.useState)(new Set),ee=(0,u.useRef)(new Map),[D,O]=(0,u.useState)(-1),k=(0,u.useRef)(null),[A,ne]=(0,u.useState)(!1),[j,M]=(0,u.useState)({}),[N,re]=(0,u.useState)({}),P=(0,u.useRef)(null),[F,ie]=(0,u.useState)(``),I=(0,u.useMemo)(()=>o&&o.length>0?o.map(fe):[{field:s,label:pe(s)}],[o,s]),L=(0,u.useMemo)(()=>{if(x&&x.length>0)return x;if(v&&v.length>0)return v.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:pe(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}})}:{}}})},[x,v]),R=ue({dataSource:i,objectName:a,enabled:e,pageSize:d,paginate:!0,filter:(0,u.useMemo)(()=>{let e=v?.length?me(v):{},t=L?.length?he(j,L):{},n={...e,...t,...y??{}};return Object.keys(n).length>0?n:void 0},[v,L,j,y])}),{records:z,loading:B,error:V}=R,H=R.total,U=R.totalPages,W=R.search,G=R.page,K=R.sort?.field??null,ae=R.sort?.direction??`asc`,q=R.setPage,oe=R.toggleSort,se=R.setSearch;(0,u.useEffect)(()=>{e||(O(-1),ne(!1),M({}),re({}),ie(``),E(new Set(r&&Array.isArray(f)?f:[])),ee.current.clear())},[e]),(0,u.useEffect)(()=>{e&&r&&E(new Set(Array.isArray(f)?f:[]))},[e,r,f]),(0,u.useEffect)(()=>{O(-1)},[z]);let J=(0,u.useCallback)(e=>e[l]??e.id??e._id,[l]),ce=(0,u.useCallback)(e=>{let t=J(e);return r?T.has(t):f===t},[r,f,T,J]),Y=(0,u.useCallback)(e=>{let n=J(e);r?E(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),ee.current.delete(n)):(r.add(n),ee.current.set(n,e)),r}):(h(n),_?.([e]),t(!1))},[r,J,h,_,t]),X=(0,u.useCallback)(()=>{let e=Array.from(T);h(e);let n=e.map(e=>ee.current.get(e)).filter(Boolean);_?.(n),t(!1)},[T,h,_,t]),le=(0,u.useCallback)(()=>{q(Math.max(1,G-1))},[q,G]),de=(0,u.useCallback)(()=>{q(Math.min(U,G+1))},[q,G,U]),ge=(0,u.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(F,10);!isNaN(t)&&t>=1&&t<=U&&q(t),ie(``)},[F,U]),be=(0,u.useCallback)(e=>{z.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),O(e=>Math.min(e+1,z.length-1))):e.key===`ArrowUp`?(e.preventDefault(),O(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),D>=0&&D<z.length&&Y(z[D])))},[z,D,Y]);(0,u.useEffect)(()=>{if(D>=0&&k.current){let e=k.current.querySelector(`[data-row-index="${D}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[D]);let xe=(0,u.useCallback)((e,t)=>{if(c&&t.field===s){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=c.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=e[r.trim()];return i!=null&&i!==``?(n=!0,String(i)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}let n=e[t.field];if(t.type&&b){let e=b(t.type);if(e)return(0,g.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)},[b,c,s]),Se=(0,u.useCallback)(e=>K===e?ae===`asc`?(0,g.jsx)(m.ArrowUp,{className:`ml-1 size-3`}):(0,g.jsx)(m.ArrowDown,{className:`ml-1 size-3`}):(0,g.jsx)(m.ArrowUpDown,{className:`ml-1 size-3 opacity-40`}),[K,ae]),Ce=(0,u.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),P.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!P.current)return;let t=e.clientX-P.current.startX,n=Math.max(ve,P.current.startWidth+t);re(e=>({...e,[P.current.field]:n}))},i=()=>{P.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),Z=(0,u.useCallback)((e,t)=>{M(n=>({...n,[e]:t})),q(1)},[]),we=(0,u.useCallback)(()=>{M({}),q(1)},[]),Q=(0,u.useMemo)(()=>Object.values(j).filter(e=>e!=null&&e!==``).length,[j]),Te=(0,u.useCallback)(e=>{let t=j[e.field],n=e.label||pe(e.field);switch(e.type){case`select`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsxs)(p.Select,{value:t==null?``:String(t),onValueChange:t=>Z(e.field,t),children:[(0,g.jsx)(p.SelectTrigger,{className:`h-8 text-xs`,children:(0,g.jsx)(p.SelectValue,{placeholder:w(`lookup.filterPlaceholder`,{label:n})})}),(0,g.jsx)(p.SelectContent,{children:e.options?.map(e=>(0,g.jsx)(p.SelectItem,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:w(`lookup.filterPlaceholder`,{label:n}),onChange:t=>{let n=t.target.value;Z(e.field,n===``?``:Number(n))}})]});case`date`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>Z(e.field,t.target.value)})]});case`boolean`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,g.jsx)(p.Checkbox,{checked:!!t,onCheckedChange:t=>Z(e.field,!!t)}),(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:w(`lookup.yes`)})]})]});default:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{className:`h-8 text-xs`,value:t??``,placeholder:w(`lookup.filterPlaceholder`,{label:n}),onChange:t=>Z(e.field,t.target.value)})]})}},[j,Z]),Ee=(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,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.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,g.jsx)(p.DialogHeader,{children:(0,g.jsxs)(p.DialogTitle,{children:[n,r&&(0,g.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,g.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,g.jsx)(m.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,g.jsx)(p.Input,{placeholder:w(`table.search`),value:W,onChange:e=>se(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),B&&(0,g.jsx)(m.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`})]}),L&&L.length>0&&(0,g.jsx)(`div`,{className:`py-2`,children:S?(0,g.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:S({filterColumns:L,values:j,onChange:Z,onClear:we,activeCount:Q})}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:Q>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>ne(e=>!e),children:[(0,g.jsx)(m.SlidersHorizontal,{className:`size-3.5`}),w(`lookup.filters`),Q>0&&(0,g.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:Q})]}),Q>0&&(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:we,children:[(0,g.jsx)(m.X,{className:`size-3`}),w(`lookup.clear`)]})]}),A&&(0,g.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:L.map(e=>(0,g.jsx)(`div`,{children:Te(e)},e.field))})]})}),V&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`}),(0,g.jsx)(`p`,{className:`text-sm text-destructive`,children:V}),(0,g.jsx)(p.Button,{variant:`outline`,size:`sm`,onClick:()=>R.refetch(),type:`button`,children:w(`lookup.retry`)})]}),C?(0,g.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:C({columns:I,records:z,loading:B,totalCount:H,currentPage:G,pageSize:d,sortField:K,sortDirection:ae,onSort:oe,onPageChange:q,onRowClick:Y,isSelected:ce,multiple:r,idField:l,cellRenderer:b})}):(0,g.jsxs)(g.Fragment,{children:[B&&z.length===0&&!V&&(0,g.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,g.jsxs)(p.Table,{children:[(0,g.jsx)(p.TableHeader,{children:(0,g.jsxs)(p.TableRow,{className:`bg-muted/40`,children:[r&&(0,g.jsx)(p.TableHead,{className:`w-10`}),I.map(e=>(0,g.jsx)(p.TableHead,{children:(0,g.jsx)(p.Skeleton,{className:`h-4 w-20`})},e.field))]})}),(0,g.jsx)(p.TableBody,{children:Array.from({length:ye},(e,t)=>(0,g.jsxs)(p.TableRow,{children:[r&&(0,g.jsx)(p.TableCell,{className:`w-10`,children:(0,g.jsx)(p.Skeleton,{className:`size-4 rounded`})}),I.map(e=>(0,g.jsx)(p.TableCell,{children:(0,g.jsx)(p.Skeleton,{className:`h-4 w-full`})},e.field))]},t))})]})}),!B&&!V&&z.length===0&&(0,g.jsx)(`div`,{className:`py-8 text-center`,children:(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:w(`lookup.noRecords`)})}),!V&&z.length>0&&(0,g.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,"aria-busy":B||void 0,"data-state":B?`loading`:`idle`,tabIndex:0,onKeyDown:be,role:`grid`,"aria-label":`Records`,children:[B&&(0,g.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,g.jsx)(m.Loader2,{className:`size-6 animate-spin text-muted-foreground`})}),(0,g.jsxs)(p.Table,{style:Object.keys(N).length>0?{tableLayout:`fixed`}:void 0,children:[(0,g.jsx)(p.TableHeader,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,g.jsxs)(p.TableRow,{children:[r&&(0,g.jsx)(p.TableHead,{className:`w-10`}),I.map(e=>{let t=N[e.field];return(0,g.jsxs)(p.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:()=>oe(e.field),"aria-sort":K===e.field?ae===`asc`?`ascending`:`descending`:`none`,children:[(0,g.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||pe(e.field),Se(e.field)]}),(0,g.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();Ce(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,g.jsx)(p.TableBody,{ref:k,children:z.map((e,t)=>{let n=J(e),i=ce(e),a=t===D;return(0,g.jsxs)(p.TableRow,{"data-row-index":t,className:(0,p.cn)(`cursor-pointer transition-colors`,Ee(i,t),a&&`ring-2 ring-primary ring-inset`),onClick:()=>Y(e),"data-testid":`record-row-${n}`,"aria-selected":i,children:[r&&(0,g.jsx)(p.TableCell,{className:`w-10`,children:i&&(0,g.jsx)(m.Check,{className:`size-4 text-primary`})}),I.map(t=>(0,g.jsx)(p.TableCell,{className:`py-2.5`,children:xe(e,t)},t.field))]},n??t)})})]})]}),!V&&H>0&&(0,g.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,g.jsxs)(`span`,{children:[H===1?w(`lookup.recordCountOne`):w(`lookup.recordCount`,{count:H}),U>1&&` · ${w(`lookup.pageOf`,{current:G,total:U})}`]}),U>1&&(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:le,disabled:G<=1,type:`button`,"aria-label":w(`lookup.prevPage`),children:(0,g.jsx)(m.ChevronLeft,{className:`size-4`})}),(0,g.jsx)(p.Input,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(G),value:F,onChange:e=>ie(e.target.value),onKeyDown:ge,"aria-label":w(`lookup.jumpToPage`),"data-testid":`record-picker-page-jump`}),(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:de,disabled:G>=U,type:`button`,"aria-label":w(`lookup.nextPage`),children:(0,g.jsx)(m.ChevronRight,{className:`size-4`})})]})]})]}),r&&(0,g.jsx)(p.DialogFooter,{children:(0,g.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:w(`table.selected`,{count:T.size})}),(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[(0,g.jsx)(p.Button,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:w(`common.cancel`)}),(0,g.jsx)(p.Button,{type:`button`,onClick:X,children:w(`common.confirm`)})]})]})})]})})}var _e,ve,ye,be=o((()=>{A(),de(),_e=10,ve=60,ye=5}));function xe(e,t){if(!(!e||!t))return t.includes(`.`)?t.split(`.`).reduce((e,t)=>e==null?e:e[t],e):e[t]}function Se(e,t=`name`){return e==null?``:String(typeof e==`object`?e[t]??e.name??e.username??e.label??``:e)}function Ce(e){let t=(e||``).trim();if(!t)return`?`;let n=t.split(/\s+/).filter(Boolean);if(n.length>=2)return(n[0][0]+n[n.length-1][0]).toUpperCase();let r=n[0];return/[㐀-鿿]/.test(r)?r.length<=2?r:r.slice(-2):r.slice(0,2).toUpperCase()}function Z(e,t){return!e||!t||t.length===0?``:t.map(t=>xe(e,t)).filter(e=>e!=null&&e!==``).map(e=>String(e)).join(` · `)}function we(e,t=`image`){let n=e?xe(e,t):void 0;return n?String(n):void 0}function Q(e,t=`id`){return!e||typeof e!=`object`?e:e[t]??e.id??e._id}function Te(e,t){let n=e??``,r=(t??``).trim().toLowerCase();if(!r||!n)return[];let i=n.toLowerCase(),a=[],o=0;for(;;){let e=i.indexOf(r,o);if(e===-1)break;a.push([e,e+r.length]),o=e+r.length}return a}var Ee=o((()=>{}));function De({text:e,query:t}){let n=t?Te(e,t):[];if(n.length===0)return(0,g.jsx)(g.Fragment,{children:e});let r=[],i=0;return n.forEach(([t,n],a)=>{t>i&&r.push(e.slice(i,t)),r.push((0,g.jsx)(`mark`,{className:`rounded-[2px] bg-primary/20 px-px text-inherit`,children:e.slice(t,n)},a)),i=n}),i<e.length&&r.push(e.slice(i)),(0,g.jsx)(g.Fragment,{children:r})}function Oe({record:e,displayField:t=`name`,subtitleFields:n,avatarField:r=`image`,selected:i=!1,active:a=!1,highlightQuery:o,onSelect:s,className:c}){let l=Se(e,t),d=Z(e,n),f=we(e,r),h=Ce(l),_=(0,u.useRef)(null);return(0,u.useEffect)(()=>{a&&_.current?.scrollIntoView?.({block:`nearest`})},[a]),(0,g.jsxs)(`button`,{ref:_,type:`button`,tabIndex:-1,onClick:()=>s?.(e),"aria-pressed":i,"data-testid":`person-row`,"data-active":a||void 0,className:(0,p.cn)(`flex w-full items-center gap-3 rounded-md px-2 py-1.5 text-left transition-colors`,`hover:bg-accent focus-visible:outline-none`,i&&`bg-accent`,a&&`bg-accent ring-1 ring-inset ring-ring`,c),children:[(0,g.jsxs)(p.Avatar,{className:`size-9 shrink-0`,children:[f&&(0,g.jsx)(p.AvatarImage,{src:f,alt:l}),(0,g.jsx)(p.AvatarFallback,{className:`text-xs`,children:h})]}),(0,g.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,g.jsx)(`div`,{className:`truncate text-sm font-medium`,children:l?(0,g.jsx)(De,{text:l,query:o}):`—`}),d&&(0,g.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:(0,g.jsx)(De,{text:d,query:o})})]}),i&&(0,g.jsx)(m.Check,{className:`size-4 shrink-0 text-primary`,"aria-hidden":!0})]})}var ke=o((()=>{Ee()}));function Ae({records:e,onRemove:t,displayField:n=`name`,avatarField:r=`image`,idField:i=`id`,label:a,onClear:o,clearLabel:s,emptyText:c,className:l}){let u=!!a||!!o&&e.length>0;return(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-col gap-1.5`,l),"data-testid":`selection-tray`,children:[u&&(0,g.jsxs)(`div`,{className:`flex items-center justify-between`,children:[a&&(0,g.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:a}),o&&e.length>0&&(0,g.jsx)(`button`,{type:`button`,onClick:o,className:`text-xs text-muted-foreground transition-colors hover:text-foreground`,"data-testid":`selection-clear`,children:s??`Clear all`})]}),e.length===0?(0,g.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:c??``}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>{let a=Q(e,i),o=Se(e,n),s=we(e,r),c=Ce(o);return(0,g.jsxs)(`span`,{"data-testid":`selection-chip`,className:`inline-flex items-center gap-1.5 rounded-full border bg-background py-0.5 pl-0.5 pr-1.5 text-sm`,children:[(0,g.jsxs)(p.Avatar,{className:`size-6 shrink-0`,children:[s&&(0,g.jsx)(p.AvatarImage,{src:s,alt:o}),(0,g.jsx)(p.AvatarFallback,{className:`text-[10px]`,children:c})]}),(0,g.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:o||`—`}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>t(a),"aria-label":`Remove ${o}`,className:`rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,g.jsx)(m.X,{className:`size-3.5`,"aria-hidden":!0})})]},String(a))})})]})}var je=o((()=>{Ee()}));function Me(){try{return typeof localStorage<`u`?localStorage:null}catch{return null}}function Ne(e){let t=Me();if(!e||!t)return[];try{let n=t.getItem(Fe+e);if(!n)return[];let r=JSON.parse(n);return Array.isArray(r)?r.slice(0,Ie):[]}catch{return[]}}function Pe(e,t){let n=Me();if(!(!e||t==null||t===``||!n))try{let r=[t,...Ne(e).filter(e=>e!==t)].slice(0,Ie);n.setItem(Fe+e,JSON.stringify(r))}catch{}}var Fe,Ie,Le=o((()=>{Fe=`objectui:lookup:recent:`,Ie=5}));function Re({open:e,onOpenChange:t,title:n,multiple:r=!1,dataSource:i,objectName:a,displayField:o=`name`,idField:s=`id`,subtitleFields:c,avatarField:l=`image`,expand:d,searchFields:f,pageSize:h=ze,lookupFilters:_,baseFilter:v,value:y,onSelect:b,onSelectRecords:x,inline:S=!1,trigger:C}){let{t:w}=te(),T=(0,p.useIsMobile)(),E=(0,u.useMemo)(()=>{let e={..._?.length?me(_):{},...v??{}};return Object.keys(e).length>0?e:void 0},[_,v]),ee=(0,u.useMemo)(()=>{if(d&&d.length)return d;let e=new Set;return(c??[]).forEach(t=>{t.includes(`.`)&&e.add(t.split(`.`)[0])}),e.size?Array.from(e):void 0},[d,c]),D=ue({dataSource:i,objectName:a,enabled:e,pageSize:h,filter:E,expand:ee,searchFields:f}),O=(0,u.useMemo)(()=>e?Ne(a):[],[e,a]),k=(0,u.useMemo)(()=>r?Array.isArray(y)?y:[]:y!=null&&y!==``?[y]:[],[r,y]),A=(0,u.useMemo)(()=>Array.from(new Set([...k,...O].map(e=>e))),[k,O]),ne=ue({dataSource:i,objectName:a,enabled:e&&A.length>0,pageSize:Math.max(1,A.length),filter:{[s]:{$in:A}},expand:ee}),j=(0,u.useMemo)(()=>{let e=new Map;for(let t of ne.records)e.set(String(Q(t,s)),t);return e},[ne.records,s]),[M,N]=(0,u.useState)([]),re=(0,u.useRef)(!1),P=(0,u.useRef)(!1);(0,u.useEffect)(()=>{e||(re.current=!1,P.current=!1,N([]))},[e]),(0,u.useEffect)(()=>{if(!e||re.current)return;if(k.length===0){re.current=!0;return}if(ne.loading){P.current=!0;return}if(!P.current)return;let t=k.map(e=>j.get(String(e))).filter(Boolean);N(t),re.current=!0},[e,k,ne.loading,j]);let F=(0,u.useMemo)(()=>new Set(M.map(e=>String(Q(e,s)))),[M,s]),ie=(0,u.useCallback)((e,n)=>{b(r?e:e[0]??null),x?.(n),e.forEach(e=>Pe(a,e)),t(!1)},[r,a,b,x,t]),I=(0,u.useCallback)(e=>{b(e.map(e=>Q(e,s))),x?.(e)},[b,x,s]),L=(0,u.useCallback)(e=>{let t=Q(e,s);if(!r){ie([t],[e]);return}let n=String(t),i=M.some(e=>String(Q(e,s))===n),o=i?M.filter(e=>String(Q(e,s))!==n):[...M,e];N(o),S&&(i||Pe(a,t),I(o))},[r,s,ie,M,S,a,I]),R=(0,u.useCallback)(e=>{let t=String(e),n=M.filter(e=>String(Q(e,s))!==t);N(n),S&&I(n)},[s,M,S,I]),z=(0,u.useCallback)(()=>{ie(M.map(e=>Q(e,s)),M)},[ie,M,s]),B=D.search.trim().length>0,V=(0,u.useMemo)(()=>B?[]:O.map(e=>j.get(String(e))).filter(Boolean),[B,O,j]),H=(0,u.useMemo)(()=>{if(B)return D.records;let e=new Set(O.map(String));return D.records.filter(t=>!e.has(String(Q(t,s))))},[B,D.records,O,s]),U=(0,u.useMemo)(()=>[...V,...H],[V,H]),[W,G]=(0,u.useState)(-1);(0,u.useEffect)(()=>{G(-1)},[D.search,D.records]),(0,u.useEffect)(()=>{G(e=>e>=U.length?U.length-1:e)},[U.length]);let K=(0,u.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),G(e=>U.length?Math.min(U.length-1,e+1):-1)):e.key===`ArrowUp`?(e.preventDefault(),G(e=>Math.max(0,e-1))):e.key===`Enter`?W>=0&&W<U.length&&(e.preventDefault(),L(U[W])):e.key===`Backspace`&&D.search.length===0&&r&&M.length>0&&R(Q(M[M.length-1],s))},[U,W,L,D.search,r,M,R,s]),ae=D.loading&&!D.error&&D.records.length===0&&V.length===0,q=D.loading&&!ae,oe=!D.loading&&!D.error&&H.length===0&&V.length===0,se=(e,t)=>{let n=Q(e,s);return(0,g.jsx)(Oe,{record:e,displayField:o,subtitleFields:c,avatarField:l,selected:F.has(String(n)),active:t===W,highlightQuery:D.search,onSelect:L},String(n))},J=n||w(`lookup.selectRecord`),ce=(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(m.Search,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`,"aria-hidden":!0}),(0,g.jsx)(p.Input,{autoFocus:!T,value:D.search,onChange:e=>D.setSearch(e.target.value),onKeyDown:K,placeholder:w(`table.search`),className:`px-8`,role:`combobox`,"aria-expanded":!0,"aria-controls":`people-picker-list`,"data-testid":`people-picker-search`}),D.loading&&(0,g.jsx)(m.Loader2,{className:`pointer-events-none absolute right-2.5 top-1/2 size-4 -translate-y-1/2 animate-spin text-muted-foreground`,"aria-hidden":!0})]}),(0,g.jsx)(p.ScrollArea,{className:`min-h-0 flex-1`,"data-testid":`people-picker-list`,children:(0,g.jsx)(`div`,{id:`people-picker-list`,role:`listbox`,"aria-busy":D.loading,className:(0,p.cn)(`flex flex-col gap-0.5 pr-2 transition-opacity`,q&&`opacity-70`),children:D.error?(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-8 text-center text-sm text-muted-foreground`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`,"aria-hidden":!0}),(0,g.jsx)(`span`,{className:`max-w-xs`,children:D.error}),(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:D.refetch,children:w(`lookup.retry`)})]}):ae?Array.from({length:Be}).map((e,t)=>(0,g.jsxs)(`div`,{className:`flex items-center gap-3 px-2 py-1.5`,children:[(0,g.jsx)(p.Skeleton,{className:`size-9 shrink-0 rounded-full`}),(0,g.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,g.jsx)(p.Skeleton,{className:`h-3 w-1/3`}),(0,g.jsx)(p.Skeleton,{className:`h-2.5 w-1/2`})]})]},t)):(0,g.jsxs)(g.Fragment,{children:[V.length>0&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`px-2 py-1 text-xs font-medium text-muted-foreground`,children:w(`lookup.recentlyUsed`)}),V.map((e,t)=>se(e,t)),H.length>0&&(0,g.jsxs)(`div`,{className:`mt-1 flex items-center gap-1.5 px-2 py-1 text-xs font-medium text-muted-foreground`,children:[(0,g.jsx)(`span`,{children:w(`lookup.allResults`)}),(0,g.jsxs)(`span`,{className:`font-normal opacity-70`,children:[`· `,D.total]})]})]}),H.map((e,t)=>se(e,V.length+t)),oe&&(0,g.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:w(`lookup.noRecords`)})]})})}),r&&!S&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Ae,{records:M,onRemove:R,onClear:()=>N([]),clearLabel:w(`lookup.clear`),displayField:o,avatarField:l,idField:s,label:w(`table.selected`,{count:M.length}),className:(0,p.cn)(`border-t pt-3`)}),(0,g.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:w(`common.cancel`)}),(0,g.jsx)(p.Button,{type:`button`,onClick:z,children:w(`common.confirm`)})]})]})]});return S?T?(0,g.jsxs)(p.Sheet,{open:e,onOpenChange:t,children:[(0,g.jsx)(p.SheetTrigger,{asChild:!0,children:C}),(0,g.jsxs)(p.SheetContent,{side:`bottom`,className:`flex h-[85vh] flex-col gap-3`,"data-testid":`people-picker-sheet`,children:[(0,g.jsx)(p.SheetHeader,{className:`text-left`,children:(0,g.jsx)(p.SheetTitle,{children:J})}),ce]})]}):(0,g.jsxs)(p.Popover,{open:e,onOpenChange:t,children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:C}),(0,g.jsx)(p.PopoverContent,{align:`start`,className:`flex max-h-[min(28rem,60vh)] w-[var(--radix-popover-trigger-width)] min-w-72 flex-col gap-3 p-3`,"data-testid":`people-picker-inline`,children:ce})]}):T?(0,g.jsx)(p.Sheet,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.SheetContent,{side:`bottom`,className:`flex h-[85vh] flex-col gap-3`,"data-testid":`people-picker-sheet`,children:[(0,g.jsx)(p.SheetHeader,{className:`text-left`,children:(0,g.jsx)(p.SheetTitle,{children:J})}),ce]})}):(0,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.DialogContent,{className:`flex max-h-[80vh] flex-col gap-3 sm:max-w-lg`,"data-testid":`people-picker-dialog`,children:[(0,g.jsx)(p.DialogHeader,{children:(0,g.jsx)(p.DialogTitle,{children:J})}),ce]})})}var ze,Be,Ve=o((()=>{de(),be(),Ee(),ke(),je(),Le(),A(),ze=25,Be=6}));function He(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}function Ue(e,{displayField:t,max:n=4}){let r=e?.fields??{},i=e=>r[e]??{},a=e=>{let t=i(e);return{field:e,...t.label?{label:t.label}:{},...t.type?{type:t.type}:{}}};if(Object.keys(r).length===0)return[];let o=e=>!Array.isArray(e)||e.length===0?null:He([t,...e.filter(e=>typeof e==`string`&&e.length>0).filter(e=>e!==t)]).slice(0,n).map(a);return o(e?.highlightFields)||o(e?.displayFields)||He([t,...Object.keys(r).filter(e=>{if(e===t||We.has(e))return!1;let n=i(e);return!(n.hidden||n.type&&Ge.has(n.type))})]).slice(0,n).map(a)}var We,Ge,Ke=o((()=>{We=new Set([`id`,`_id`,`created`,`modified`,`created_at`,`updated_at`,`created_by`,`updated_by`,`modified_by`,`owner_id`,`organization_id`,`space`,`company_id`,`instance_state`,`locked`,`is_deleted`,`deleted`]),Ge=new Set([`json`,`object`,`grid`,`html`,`richtext`,`markdown`,`code`,`image`,`file`,`avatar`,`vector`,`location`,`geometry`,`textarea`,`secret`,`password`,`encrypted`])}));function qe(e){Ye=e}function Je(){return Ye}var Ye,Xe=o((()=>{})),Ze=s({LookupField:()=>rt});function Qe(e){return!!e&&!ot.test(e)&&!st.has(e)}function $e(e,t){if(!e||typeof e!=`object`||!t)return null;let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=t.replace(/\{([^{}]+)\}/g,(t,n)=>{let i=e[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r&&i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim()||null}function et(e,t,n,r,i,a){let o=e[n]??e.id??e._id??e.externalId,s=i?$e(e,i):null,c;if(a){let t=(0,d.getRecordDisplayName)(a,e),n=e?.id??e?._id;t===`Untitled`||n!=null&&t===`Record #${n}`||(c=t)}let l=s??e[t]??c??e.label??e.name??e.full_name??e.title??e.subject??e.externalId??String(o),u=r?e[r]:void 0;return{value:o,label:String(l),description:u,...e}}function tt(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t.startsWith(`{`)||!t.endsWith(`}`))return null;try{let e=JSON.parse(t);return e&&typeof e==`object`&&!Array.isArray(e)?e:null}catch{return null}}function nt(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function rt({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=(0,u.useState)(!1),{t:s}=te(),c=u.default.useId(),[l,d]=(0,u.useState)(null),[f,_]=(0,u.useState)([]),[v,y]=(0,u.useState)(-1),b=(0,u.useRef)(null),x=n||i.schema,S=x?.field,C=S&&typeof S==`object`&&(`reference_to`in S||`reference`in S||`type`in S)?S:x,w=C?.options||[],T=C?.multiple||!1,E=C?.display_field||C?.displayField||C?.reference_field||`name`,ee=C?.description_field??C?.descriptionField,D=C?.id_field||`id`,O=C?.reference_to||C?.reference,k=C?.allow_create??C?.allowCreate,A=k==null?Qe(O):!!k,ne=C?.lookup_columns??C?.lookupColumns,j=C?.lookup_page_size??C?.lookupPageSize,M=C?.lookup_filters??C?.lookupFilters,N=C?.picker,re=C?.subtitle,P=C?.avatar_field??C?.avatarField??`image`,F=(0,u.useMemo)(()=>{let e=C?.depends_on??C?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[C?.depends_on,C?.dependsOn]),ie=i.dependentValues,I=(0,u.useContext)(at),L=I?.dataSource??null,R=i.dataSource??x?.dataSource??C?.dataSource??L,z=(0,u.useMemo)(()=>ie||(I?.formValues??I?.data??{}),[ie,I?.formValues,I?.data]),B=(0,u.useMemo)(()=>F.length===0?!1:F.some(({field:e})=>{let t=z[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[F,z]),V=R!=null&&typeof R.find==`function`&&!!O,[H,U]=(0,u.useState)(null);(0,u.useEffect)(()=>{if(!R||!O)return;let e=R.getObjectSchema;if(typeof e!=`function`)return;let t=!0;return Promise.resolve(e.call(R,O)).then(e=>{t&&U(e)}).catch(()=>{}),()=>{t=!1}},[R,O]);let W=(0,u.useMemo)(()=>{let e=H?.titleFormat;return typeof e==`string`?e:e&&typeof e==`object`&&typeof e.source==`string`?e.source:null},[H]),G=(0,u.useMemo)(()=>{if(ne&&ne.length>0)return ne;let e=Ue(H,{displayField:E});return e.length>0?e:void 0},[ne,H,E]),K=(0,u.useMemo)(()=>{if(ee)return ee;let e=G?.find(e=>(typeof e==`string`?e:e.field)!==E);if(e)return typeof e==`string`?e:e.field},[ee,G,E]),ae=(0,u.useMemo)(()=>{if(!G)return;let e=[];for(let t of G)if(typeof t==`object`&&t.type){let n=nt(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[G]),q=i.onCreateNew??x?.onCreateNew,[oe,se]=(0,u.useState)(!1),J=(0,u.useMemo)(()=>{let e={};for(let{field:t,param:n}of F){let r=z[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}return Object.keys(e).length>0?e:void 0},[F,z]),ce=(0,u.useMemo)(()=>{let e={...M&&M.length>0?me(M):{},...J??{}};return Object.keys(e).length>0?e:void 0},[J,M]),Y=ue({dataSource:R,objectName:O,enabled:a&&V&&!B,pageSize:it,filter:ce}),X=Y.search,le=Y.loading,de=Y.total,fe=Y.error??l,pe=(0,u.useMemo)(()=>Y.records.map(e=>et(e,E,D,K,W,H)),[Y.records,E,D,K,W,H]),he=V?pe:w,_e=(0,u.useMemo)(()=>{if(V||!X)return he;let e=X.toLowerCase();return he.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[V,he,X]);(0,u.useEffect)(()=>{y(-1)},[_e.length]),(0,u.useEffect)(()=>{a||y(-1)},[a]);let ve=(0,u.useCallback)(e=>Y.setSearch(e),[Y.setSearch]);(0,u.useEffect)(()=>{if(!V||!R||!O)return;let t=(T?Array.isArray(e)?e:[]:e!=null&&e!==``?[e]:[]).filter(e=>e!=null&&e!==``&&typeof e!=`object`&&!tt(e));if(!t.length)return;let n=t.filter(e=>!ye(e));if(!n.length)return;let r=!1;return(async()=>{try{let e=[];for(let t of n)if(typeof R.findOne==`function`){let n=await R.findOne(O,t);n&&e.push(et(n,E,D,K,W,H))}else{let n=await R.find(O,{$filter:{[D]:t},$top:1}),r=n?.data??n??[];r[0]&&e.push(et(r[0],E,D,K,W,H))}!r&&e.length&&_(t=>{let n=new Map(t.map(e=>[e.value,e]));for(let t of e)n.set(t.value,t);return Array.from(n.values())})}catch{}})(),()=>{r=!0}},[e,V,O,E,D,K,T]);let ye=(0,u.useCallback)(e=>w.find(t=>t.value===e)??pe.find(t=>t.value===e)??f.find(t=>t.value===e),[w,pe,f]),be=(0,u.useCallback)(e=>{let t=String(e);return w.find(e=>String(e.value)===t)??pe.find(e=>String(e.value)===t)??f.find(e=>String(e.value)===t)},[w,pe,f]),xe=(0,u.useCallback)(e=>{let t=typeof e==`object`&&e?e:tt(e);return t?t[D]??t.id??t._id??t.externalId:e},[D]),Se=(0,u.useCallback)(e=>{if(e==null||e===``)return;let t=typeof e==`object`?e:tt(e);return t?et(t,E,D,K,W,H):ye(e)??be(e)},[ye,be,E,D,K,W,H]),Z=T?(Array.isArray(e)?e:[]).map(Se).filter(Boolean):e?[Se(e)].filter(Boolean):[],we=i.onSelectRecord,Q=(0,u.useCallback)(n=>{if(n&&n.value!=null&&_(e=>{let t=new Map(e.map(e=>[e.value,e]));return t.set(n.value,n),Array.from(t.values())}),T){let r=(Array.isArray(e)?e:[]).map(xe);r.includes(n.value)?t(r.filter(e=>e!==n.value)):(O&&Pe(O,n.value),t([...r,n.value]))}else O&&Pe(O,n.value),we?we(n):t(n.value),o(!1)},[T,e,t,we,O,xe]),Te=n=>{t(T?(Array.isArray(e)?e:[]).map(xe).filter(e=>e!==n):null)},Ee=(0,u.useCallback)(e=>{let t=e.map(e=>et(e,E,D,K,W,H));O&&t.forEach(e=>Pe(O,e.value)),_(t)},[E,D,K,W,O]),[De,Oe]=(0,u.useState)([]);(0,u.useEffect)(()=>{if(!a||!V||!R||!O||X)return;let e=Ne(O);if(!e.length){Oe([]);return}let t=!1;return(async()=>{try{let n=[];for(let t of e){let e=ye(t);if(e){n.push(e);continue}if(typeof R.findOne==`function`){let e=await R.findOne(O,t);e&&n.push(et(e,E,D,K,W,H))}}t||Oe(n)}catch{t||Oe([])}})(),()=>{t=!0}},[a,V,O,X]);let ke=!X&&V?De.length:0,Ae=(0,u.useMemo)(()=>{if(X||!V||De.length===0)return _e;let e=new Set(De.map(e=>e.value));return[...De,..._e.filter(t=>!e.has(t.value))]},[X,V,De,_e]);(0,u.useEffect)(()=>{y(-1)},[Ae.length]);let[je,Me]=(0,u.useState)(!1),{execute:Fe}=(0,h.useAction)(),Ie=(0,h.useHasActionProvider)(),Le=!!q||A&&(Ie||V),ze=(0,u.useCallback)(async e=>{let t=(e||``).trim();if(q){q(t),o(!1);return}if(!(!A||!O)){if(d(null),Ie){o(!1),await new Promise(e=>setTimeout(e,0));let e=await Fe({type:`modal`,modal:{objectName:O,mode:`create`}});if(e?.success&&e.data){let t=et(e.data,E,D,K,W,H);_(e=>[t,...e.filter(e=>e.value!==t.value)]),Q(t);return}if(!(e?.success&&e.modal))return}if(!(!R||!t)){Me(!0);try{let e=et(await R.create(O,{[E]:t}),E,D,K,W,H);_(t=>[e,...t.filter(t=>t.value!==e.value)]),Q(e)}catch(e){d(e instanceof Error?e.message:String(e))}finally{Me(!1)}}}},[q,A,O,Ie,Fe,R,E,D,K,W,H,Q]),Be=(0,u.useCallback)(e=>{if(!G||G.length===0)return;let t=[];for(let n of G){let r=typeof n==`string`?n:n.field;if(r===E)continue;let i=e[r];if(i==null||i===``)continue;let a=typeof n==`string`?r:n.label||r,o=typeof i==`object`?i.name??i.label??JSON.stringify(i):i;t.push(`${a}: ${o}`)}return t.length?t.join(` · `):void 0},[G,E]),Ve=(0,u.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),y(e=>e<Ae.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),y(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),v>=0&&v<Ae.length&&Q(Ae[v]))},[Ae,v,Q]);if((0,u.useEffect)(()=>{v>=0&&b.current&&b.current.querySelector(`[data-lookup-index="${v}"]`)?.scrollIntoView({block:`nearest`})},[v]),r)return Z.length?T?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>(0,g.jsx)(p.Badge,{variant:`outline`,children:e?.label||e?.[E]},t))}):(0,g.jsx)(`span`,{className:`text-sm`,children:Z[0]?.label||Z[0]?.[E]}):(0,g.jsx)(p.EmptyValue,{});let He=!!i.compact,We=Z[0]?.label||Z[0]?.[E],Ge=(0,g.jsxs)(p.Button,{variant:`outline`,className:(0,p.cn)(`min-w-0 flex-1 justify-start text-left font-normal`,He&&`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus-visible:ring-1 focus-visible:ring-ring/60`),type:`button`,disabled:B||i.disabled,"data-testid":B?`lookup-trigger-gated`:i.name||x?.name?`lookup-trigger-${i.name||x.name}`:`lookup-trigger`,title:B?s(`lookup.selectFirst`,{fields:F.map(e=>e.field).join(`, `)}):void 0,children:[(0,g.jsx)(m.Search,{className:(0,p.cn)(`size-4 shrink-0 text-muted-foreground`,He?`mr-1.5`:`mr-2`)}),(0,g.jsx)(`span`,{className:(0,p.cn)(`truncate`,He&&Z.length===0&&`text-muted-foreground`),children:B?s(`lookup.selectFirst`,{fields:F.map(e=>e.field).join(`, `)}):He&&!T&&Z.length>0?We:Z.length===0?x?.placeholder||s(`common.select`):T?s(`table.selected`,{count:Z.length}):s(`common.select`)})]});return(0,g.jsxs)(`div`,{className:He?``:`space-y-2`,children:[Z.length>0&&!He&&(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>{let n=e?.label||e?.[E];if(N===`search`){let r=e?.[P]||e?.image;return(0,g.jsxs)(`span`,{"data-testid":`people-field-chip`,className:`inline-flex items-center gap-1.5 rounded-full border bg-background py-0.5 pl-0.5 pr-1.5 text-sm`,children:[(0,g.jsxs)(p.Avatar,{className:`size-6 shrink-0`,children:[r&&(0,g.jsx)(p.AvatarImage,{src:r,alt:String(n||``)}),(0,g.jsx)(p.AvatarFallback,{className:`text-[10px]`,children:Ce(String(n||``))})]}),(0,g.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:n}),(0,g.jsx)(`button`,{onClick:()=>Te(e?.value),className:`rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,type:`button`,"aria-label":s(`lookup.remove`,{label:n}),children:(0,g.jsx)(m.X,{className:`size-3`})})]},t)}return(0,g.jsxs)(p.Badge,{variant:`outline`,className:`gap-1`,children:[n,(0,g.jsx)(`button`,{onClick:()=>Te(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":s(`lookup.remove`,{label:n}),children:(0,g.jsx)(m.X,{className:`size-3`})})]},t)})}),N===`search`&&V&&R&&O?(0,g.jsx)(Re,{inline:!0,trigger:Ge,open:oe,onOpenChange:se,title:x?.label||s(`common.select`),multiple:T,dataSource:R,objectName:O,displayField:E,idField:D,subtitleFields:re,avatarField:P,pageSize:j,value:e,onSelect:t,onSelectRecords:Ee,lookupFilters:M,baseFilter:J}):(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsxs)(p.Popover,{open:a,onOpenChange:e=>{B||o(e)},children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:Ge}),(0,g.jsxs)(p.PopoverContent,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,g.jsx)(`div`,{className:`p-2`,children:(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(m.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,g.jsx)(p.Input,{placeholder:s(`common.search`)+`...`,value:X,onChange:e=>ve(e.target.value),onKeyDown:Ve,className:`w-full pl-9 h-8 text-sm`,role:`combobox`,"aria-autocomplete":`list`,"aria-controls":c,"aria-expanded":a,"aria-activedescendant":v>=0?`${c}-opt-${v}`:void 0}),le&&(0,g.jsx)(m.Loader2,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),fe&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`}),(0,g.jsx)(`p`,{className:`text-sm text-destructive`,children:fe}),(0,g.jsx)(p.Button,{variant:`outline`,size:`sm`,onClick:()=>Y.refetch(),type:`button`,children:s(`lookup.retry`)})]}),le&&_e.length===0&&!fe&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,g.jsx)(m.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`lookup.loading`)})]}),!fe&&!(le&&_e.length===0)&&(0,g.jsx)(`div`,{ref:b,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,id:c,children:Ae.length===0?(0,g.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`lookup.noOptions`)}),Le&&(0,g.jsxs)(p.Button,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,disabled:je,onClick:()=>ze(X),children:[je?(0,g.jsx)(m.Loader2,{className:`size-4 animate-spin`}):(0,g.jsx)(m.Plus,{className:`size-4`}),X?s(`lookup.createNamed`,{name:X}):s(`lookup.createNew`)]})]}):(0,g.jsxs)(g.Fragment,{children:[Ae.map((t,n)=>{let r=T?(Array.isArray(e)?e:[]).map(xe).includes(t.value):xe(e)===t.value,i=n===v,a=ke>0&&n===0,o=ke>0&&n===ke;return(0,g.jsxs)(u.default.Fragment,{children:[a&&(0,g.jsx)(`div`,{className:`px-3 pt-2 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:s(`lookup.recentlyUsed`)}),o&&(0,g.jsx)(`div`,{className:`mt-1 border-t px-3 pt-2 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:s(`lookup.allResults`)}),(0,g.jsxs)(`button`,{id:`${c}-opt-${n}`,"data-lookup-index":n,role:`option`,"aria-selected":r,title:Be(t),onClick:()=>Q(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${i?`bg-accent text-accent-foreground`:r?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,g.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,g.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,g.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),r&&(0,g.jsx)(p.Badge,{variant:`default`,className:`ml-2 shrink-0`,children:s(`lookup.selectedBadge`)})]})]},t.value)}),V&&de>_e.length&&(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:s(`lookup.showingResults`,{shown:_e.length,total:de})}),V&&de>_e.length&&(0,g.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),se(!0)},"data-testid":`show-all-results`,children:[(0,g.jsx)(m.TableProperties,{className:`size-3.5`}),s(`lookup.showAllResults`,{count:de})]}),Le&&(0,g.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`,disabled:je,onClick:()=>ze(X),children:[je?(0,g.jsx)(m.Loader2,{className:`size-3.5 animate-spin`}):(0,g.jsx)(m.Plus,{className:`size-3.5`}),X?s(`lookup.createNamed`,{name:X}):s(`lookup.createNew`)]})]})})]})]}),V&&N!==`search`&&(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,disabled:B||i.disabled,onClick:()=>se(!0),"aria-label":s(`lookup.browseAll`),title:B?s(`lookup.selectFirst`,{fields:F.map(e=>e.field).join(`, `)}):s(`lookup.browseAll`),"data-testid":`browse-all-records`,children:(0,g.jsx)(m.TableProperties,{className:`size-4`})})]}),V&&R&&O&&N!==`search`&&(0,g.jsx)(ge,{open:oe,onOpenChange:se,title:x?.label||s(`common.select`),multiple:T,dataSource:R,objectName:O,columns:G,displayField:E,titleFormat:W,idField:D,pageSize:j,value:e,onSelect:t,onSelectRecords:Ee,lookupFilters:M,baseFilter:J,cellRenderer:Je(),filterColumns:ae})]})}var it,at,ot,st,ct=o((()=>{be(),Ve(),de(),Ke(),Le(),Ee(),Xe(),A(),it=50,at=h.SchemaRendererContext,ot=/^(sys_|cloud_|ai_)/,st=new Set([`user`,`users`])})),lt=s({DateTimeField:()=>ut});function ut({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=new Date(e);return(0,g.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{N(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var dt=o((()=>{re()})),ft=s({TimeField:()=>pt});function pt({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})});let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`time`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{N(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var mt=o((()=>{re()})),ht=s({PercentField:()=>gt});function gt({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.precision??2,l=typeof s?.max==`number`?s.max:void 0,u=l!=null&&l>1,d=e=>u?e:e*100,f=e=>u?e:e/100,m=u?l:100;if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[d(e).toFixed(c),`%`]});let h=e==null?``:d(e),_=e==null?0:d(e),v=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:f(n))},y=e=>{if(r||o.disabled)return;if(!Array.isArray(e)||e.length===0){t(null);return}let n=e[0];t(typeof n==`number`?f(n):null)},b=10**-c;return(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.Input,{...o,type:`number`,value:h,onChange:v,placeholder:s?.placeholder||`0`,disabled:r||o.disabled,className:`pr-8 ${a||``}`,step:(10**-c).toFixed(c),"aria-invalid":!!i}),(0,g.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,g.jsx)(p.Slider,{value:[_],onValueChange:y,min:0,max:m,step:b,disabled:r||o.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var _t=o((()=>{})),vt=s({PasswordField:()=>yt});function yt({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,g.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:l,...d}=a;return(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.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,g.jsx)(p.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,g.jsx)(m.EyeOff,{className:`size-4 text-gray-500`}):(0,g.jsx)(m.Eye,{className:`size-4 text-gray-500`})})]})}var bt=o((()=>{})),xt=s({FileField:()=>St});function St({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,f=s?.capture??null,h=!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=f===!1?!1:f??(h&&v?`environment`:null),[b,x]=(0,u.useState)(!1),[S,C]=(0,u.useState)([]),{upload:w}=(0,_.useUpload)(),[T,E]=(0,u.useState)({}),[ee,D]=(0,u.useState)(!1),O=e?Array.isArray(e)?e:[e]:[],k=(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){D(!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?[...O,...e]:e[0])}finally{D(!1),E({})}}},[O,c,t,d,w]),te=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!0)},[]),A=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1)},[]),ne=(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()),n=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(`/*`,`/`)))});k(n)}else k(t)},[l,k]);if(r)return e?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,g.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,g.jsx)(p.EmptyValue,{});let j=e=>{k(Array.from(e.target.files||[]))},M=e=>{if(c){let n=O.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},N=e=>(e.mime_type||``).startsWith(`image/`);return(0,g.jsxs)(`div`,{className:i.className,children:[(0,g.jsx)(`input`,{ref:a,type:`file`,multiple:c,accept:l,onChange:j,className:`hidden`}),y&&(0,g.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,capture:y,onChange:j,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{onDragOver:te,onDragLeave:A,onDrop:ne,onClick:()=>a.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,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},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/i18n"),p=require("@object-ui/components"),m=require("lucide-react"),h=require("@object-ui/react"),g=require("react/jsx-runtime"),_=require("@object-ui/providers"),v=require("react-markdown");v=l(v,1);let y=require("remark-gfm");y=l(y,1);let b=require("rehype-sanitize");b=l(b,1);var x=s({TextField:()=>S});function S({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})});let o=a?.rows,{inputType:s,...c}=i;return o&&o>1?(0,g.jsx)(p.Textarea,{...c,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled}):(0,g.jsx)(p.Input,{...c,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled})}var C=o((()=>{})),w=s({NumberField:()=>T});function T({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,o=a?.scale,{inputType:s,...c}=i;return(0,g.jsx)(p.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 E=o((()=>{})),ee=s({BooleanField:()=>D});function D({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,g.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:d,...f}=i;return o===`checkbox`?(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.Checkbox,{...f,id:c,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||f.disabled}),(0,g.jsx)(p.Label,{htmlFor:c,className:`sr-only`,children:l})]}):(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.Switch,{...f,id:c,checked:!!e,onCheckedChange:t,disabled:r||f.disabled}),(0,g.jsx)(p.Label,{htmlFor:c,className:`sr-only`,children:l})]})}var O=o((()=>{})),k,te,A=o((()=>{k={"common.selectOption":`Select an option`,"common.select":`Select...`,"common.search":`Search`,"common.loading":`Loading...`,"common.noResults":`No results found`,"common.cancel":`Cancel`,"common.confirm":`Confirm`,"table.selected":`{{count}} selected`,"table.search":`Search...`,"lookup.loading":`Loading…`,"lookup.noOptions":`No options found`,"lookup.noRecords":`No records found`,"lookup.recentlyUsed":`Recently used`,"lookup.allResults":`All results`,"lookup.createNew":`Create new`,"lookup.createNamed":`Create new "{{name}}"`,"lookup.showingResults":`Showing {{shown}} of {{total}} results`,"lookup.showAllResults":`Show all results ({{count}})`,"lookup.selectedBadge":`Selected`,"lookup.browseAll":`Browse all records`,"lookup.remove":`Remove {{label}}`,"lookup.selectFirst":`Select {{fields}} first`,"lookup.selectRecord":`Select record`,"lookup.recordCount":`{{count}} records`,"lookup.recordCountOne":`1 record`,"lookup.pageOf":`Page {{current}} of {{total}}`,"lookup.filters":`Filters`,"lookup.clear":`Clear`,"lookup.yes":`Yes`,"lookup.filterPlaceholder":`Filter {{label}}`,"lookup.prevPage":`Previous page`,"lookup.nextPage":`Next page`,"lookup.jumpToPage":`Jump to page`,"lookup.retry":`Retry`},te=(0,f.createSafeTranslation)(k,`common.selectOption`)})),j=s({SelectField:()=>M});function M({value:e,onChange:t,field:n,readonly:r,schema:i,dependentValues:a,dependsOn:o,emptyHint:s,dataSource:c,...l}){let f=n||i,m=f?.options||[],{t:_}=te(),v=l.name||f?.name||l.id||``,y=(0,u.useContext)(h.SchemaRendererContext),b=(0,u.useMemo)(()=>a??y?.formValues??y?.data??{},[a,y?.formValues,y?.data]),x=(0,h.usePredicateScope)(),S=f?.dependsOn??o,C=(0,u.useMemo)(()=>(0,d.resolveDependsOnFields)(S),[S]),w=(0,u.useMemo)(()=>C.length>0&&(0,d.isOptionGroupGated)(S,b),[C,S,b]),T=(0,u.useMemo)(()=>w?[]:(0,d.resolveVisibleOptions)(m,b,x),[w,m,b,x]);if((0,u.useEffect)(()=>{r||e==null||e===``||(0,d.isValueStillOffered)(e,T)||t?.(void 0)},[T,w]),r){let t=m.find(t=>t.value===e)?.label||e;return t?(0,g.jsx)(`span`,{className:`text-sm`,children:t}):(0,g.jsx)(p.EmptyValue,{})}if(T.length===0){let e=w?`Select ${C.join(` / `)} first`:`No options available`;return(0,g.jsx)(`div`,{"data-testid":v?`select-empty-${v}`:void 0,className:`flex h-9 w-full items-center rounded-md border border-input bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:e})}return(0,g.jsxs)(p.Select,{...l,value:e,onValueChange:t,disabled:r||l.disabled,children:[(0,g.jsx)(p.SelectTrigger,{className:l.className,id:l.id,"data-testid":v?`select-trigger-${v}`:void 0,children:(0,g.jsx)(p.SelectValue,{placeholder:f?.placeholder||_(`common.selectOption`)})}),(0,g.jsx)(p.SelectContent,{position:`popper`,children:T.map(e=>(0,g.jsx)(p.SelectItem,{value:e.value,"data-testid":`select-option-${e.value}`,children:e.label},e.value))})]})}var N=o((()=>{A()}));function P(e){if(!(e.disabled||e.readOnly))try{e.showPicker?.()}catch{}}var ne=o((()=>{})),F=s({DateField:()=>I});function I({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,g.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,g.jsx)(p.EmptyValue,{});let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`date`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{P(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var re=o((()=>{ne()})),ie=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,g.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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((()=>{})),z=s({PhoneField:()=>B});function B({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,g.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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 V=o((()=>{})),H=s({UrlField:()=>U});function U({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,g.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{});let{inputType:s,...c}=a;return(0,g.jsx)(p.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 W=o((()=>{})),G=o((()=>{})),K=s({CurrencyField:()=>q});function ae(e,t,n){if(t)try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return e.toFixed(n)}}function q({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,{currency:c}=(0,f.useLocalization)(),l=(0,f.resolveFieldCurrency)(s,c),u=s?.precision??2;if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:ae(Number(e),l,u)});let d=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(u)))},m=l?l===`USD`?`$`:l:``;return(0,g.jsxs)(`div`,{className:`relative`,children:[m&&(0,g.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:m}),(0,g.jsx)(p.Input,{...o,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:d,placeholder:s?.placeholder||`0.00`,disabled:r||o.disabled,className:`${m?`pl-8`:``} ${a||``}`,step:(10**-u).toFixed(u),"aria-invalid":!!i})]})}var oe=o((()=>{G()})),se=s({TextAreaField:()=>J});function J({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,g.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,g.jsx)(p.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,f]=(0,u.useState)(!1),[h,_]=(0,u.useState)(e??``),v=()=>{_(e??``),f(!0)},y=()=>f(!1),b=()=>{t(h),f(!1)},{inputType:x,mobileFullscreen:S,...C}=a;return(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.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,g.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,g.jsx)(m.Maximize2,{className:`size-3.5`})}),c&&(0,g.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,g.jsx)(p.Dialog,{open:d,onOpenChange:f,children:(0,g.jsxs)(p.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,g.jsx)(p.DialogHeader,{className:`p-4 border-b`,children:(0,g.jsx)(p.DialogTitle,{className:`text-base`,children:o?.label??`Edit text`})}),(0,g.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,g.jsx)(p.Textarea,{autoFocus:!0,value:h,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,g.jsxs)(p.DialogFooter,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[c&&(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[h.length,`/`,c]}),(0,g.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,onClick:y,children:[(0,g.jsx)(m.X,{className:`size-4 mr-1`}),` Cancel`]}),(0,g.jsxs)(p.Button,{type:`button`,onClick:b,"data-testid":`textarea-fullscreen-save`,children:[(0,g.jsx)(m.Check,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var ce=o((()=>{})),Y=s({RichTextField:()=>X});function X({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let{t:o}=(0,h.useObjectTranslation)();if(r)return(0,g.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,g.jsx)(p.EmptyValue,{})});let s=n||a.schema,c=s?.rows||8,l=s?.format||`markdown`;return(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,g.jsx)(`span`,{children:o(`fields.richText.format`,{format:l,defaultValue:`Format: ${l}`})}),(0,g.jsx)(`span`,{className:`italic`,children:o(`fields.richText.basicEditorHint`,{defaultValue:`Rich text editor (basic)`})})]}),(0,g.jsx)(p.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||o(`fields.richText.placeholder`,{defaultValue:`Enter text...`}),disabled:r||a.disabled,rows:c,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var le=o((()=>{}));function ue(e){let{dataSource:t,objectName:n,enabled:r=!0,pageSize:i=50,paginate:a=!1,filter:o,expand:s,searchFields:c,debounceMs:l=300}=e,[d,f]=(0,u.useState)([]),[p,m]=(0,u.useState)(!1),[h,g]=(0,u.useState)(null),[_,v]=(0,u.useState)(0),[y,b]=(0,u.useState)(1),[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)(null),T=(0,u.useRef)(null),E=(0,u.useMemo)(()=>o&&Object.keys(o).length?JSON.stringify(o):``,[o]),ee=(0,u.useMemo)(()=>s?.length?s.join(`,`):``,[s]),D=(0,u.useMemo)(()=>c?.length?c.join(`,`):``,[c]),O=!!r&&!!t&&typeof t.find==`function`&&!!n,k=(0,u.useCallback)(async(e,r,l)=>{if(!(!O||!t||!n)){m(!0),g(null);try{let u={$top:i};a&&(u.$skip=(r-1)*i),e&&e.trim()&&(u.$search=e.trim()),c&&c.length>0&&(u.$searchFields=c),l&&(u.$orderby={[l.field]:l.direction}),o&&Object.keys(o).length>0&&(u.$filter=o),s&&s.length>0&&(u.$expand=s);let d=await t.find(n,u),p=d?.data??d??[];f(p),v(d?.total??p.length)}catch(e){g(e instanceof Error?e.message:String(e)),f([])}finally{m(!1)}}},[O,t,n,i,a,E,ee,D]);(0,u.useEffect)(()=>{O&&k(x,y,C)},[O,y,C,k]),(0,u.useEffect)(()=>{r||(f([]),g(null),S(``),b(1),w(null))},[r]),(0,u.useEffect)(()=>()=>{T.current&&clearTimeout(T.current)},[]);let te=(0,u.useCallback)(e=>{S(e),b(1),T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{k(e,1,C)},l)},[k,C,l]),A=(0,u.useCallback)(e=>{b(e)},[]),j=(0,u.useCallback)(e=>{w(t=>t&&t.field===e?{field:e,direction:t.direction===`asc`?`desc`:`asc`}:{field:e,direction:`asc`}),b(1)},[]),M=(0,u.useCallback)(e=>{w(e),b(1)},[]),N=(0,u.useCallback)(()=>{T.current&&clearTimeout(T.current),f([]),g(null),S(``),b(1),w(null)},[]),P=(0,u.useCallback)(()=>{k(x,y,C)},[k,x,y,C]);return{records:d,loading:p,error:h,total:_,totalPages:Math.max(1,Math.ceil(_/Math.max(1,i))),page:y,search:x,sort:C,setPage:A,setSearch:te,toggleSort:j,setSort:M,reset:N,refetch:P}}var de=o((()=>{}));function fe(e){return typeof e==`string`?{field:e}:e}function pe(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function me(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 he(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 ge({open:e,onOpenChange:t,title:n=`Select Record`,multiple:r=!1,dataSource:i,objectName:a,columns:o,displayField:s=`name`,titleFormat:c,idField:l=`id`,pageSize:d=_e,value:f,onSelect:h,onSelectRecords:_,lookupFilters:v,baseFilter:y,cellRenderer:b,filterColumns:x,renderFilterBar:S,renderGrid:C}){let{t:w}=te(),[T,E]=(0,u.useState)(new Set),ee=(0,u.useRef)(new Map),[D,O]=(0,u.useState)(-1),k=(0,u.useRef)(null),[A,j]=(0,u.useState)(!1),[M,N]=(0,u.useState)({}),[P,ne]=(0,u.useState)({}),F=(0,u.useRef)(null),[I,re]=(0,u.useState)(``),ie=(0,u.useMemo)(()=>o&&o.length>0?o.map(fe):[{field:s,label:pe(s)}],[o,s]),L=(0,u.useMemo)(()=>{if(x&&x.length>0)return x;if(v&&v.length>0)return v.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:pe(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}})}:{}}})},[x,v]),R=ue({dataSource:i,objectName:a,enabled:e,pageSize:d,paginate:!0,filter:(0,u.useMemo)(()=>{let e=v?.length?me(v):{},t=L?.length?he(M,L):{},n={...e,...t,...y??{}};return Object.keys(n).length>0?n:void 0},[v,L,M,y])}),{records:z,loading:B,error:V}=R,H=R.total,U=R.totalPages,W=R.search,G=R.page,K=R.sort?.field??null,ae=R.sort?.direction??`asc`,q=R.setPage,oe=R.toggleSort,se=R.setSearch;(0,u.useEffect)(()=>{e||(O(-1),j(!1),N({}),ne({}),re(``),E(new Set(r&&Array.isArray(f)?f:[])),ee.current.clear())},[e]),(0,u.useEffect)(()=>{e&&r&&E(new Set(Array.isArray(f)?f:[]))},[e,r,f]),(0,u.useEffect)(()=>{O(-1)},[z]);let J=(0,u.useCallback)(e=>e[l]??e.id??e._id,[l]),ce=(0,u.useCallback)(e=>{let t=J(e);return r?T.has(t):f===t},[r,f,T,J]),Y=(0,u.useCallback)(e=>{let n=J(e);r?E(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),ee.current.delete(n)):(r.add(n),ee.current.set(n,e)),r}):(h(n),_?.([e]),t(!1))},[r,J,h,_,t]),X=(0,u.useCallback)(()=>{let e=Array.from(T);h(e);let n=e.map(e=>ee.current.get(e)).filter(Boolean);_?.(n),t(!1)},[T,h,_,t]),le=(0,u.useCallback)(()=>{q(Math.max(1,G-1))},[q,G]),de=(0,u.useCallback)(()=>{q(Math.min(U,G+1))},[q,G,U]),ge=(0,u.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(I,10);!isNaN(t)&&t>=1&&t<=U&&q(t),re(``)},[I,U]),be=(0,u.useCallback)(e=>{z.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),O(e=>Math.min(e+1,z.length-1))):e.key===`ArrowUp`?(e.preventDefault(),O(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),D>=0&&D<z.length&&Y(z[D])))},[z,D,Y]);(0,u.useEffect)(()=>{if(D>=0&&k.current){let e=k.current.querySelector(`[data-row-index="${D}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[D]);let xe=(0,u.useCallback)((e,t)=>{if(c&&t.field===s){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=c.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=e[r.trim()];return i!=null&&i!==``?(n=!0,String(i)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}let n=e[t.field];if(t.type&&b){let e=b(t.type);if(e)return(0,g.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)},[b,c,s]),Se=(0,u.useCallback)(e=>K===e?ae===`asc`?(0,g.jsx)(m.ArrowUp,{className:`ml-1 size-3`}):(0,g.jsx)(m.ArrowDown,{className:`ml-1 size-3`}):(0,g.jsx)(m.ArrowUpDown,{className:`ml-1 size-3 opacity-40`}),[K,ae]),Ce=(0,u.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),F.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!F.current)return;let t=e.clientX-F.current.startX,n=Math.max(ve,F.current.startWidth+t);ne(e=>({...e,[F.current.field]:n}))},i=()=>{F.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),Z=(0,u.useCallback)((e,t)=>{N(n=>({...n,[e]:t})),q(1)},[]),we=(0,u.useCallback)(()=>{N({}),q(1)},[]),Q=(0,u.useMemo)(()=>Object.values(M).filter(e=>e!=null&&e!==``).length,[M]),Te=(0,u.useCallback)(e=>{let t=M[e.field],n=e.label||pe(e.field);switch(e.type){case`select`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsxs)(p.Select,{value:t==null?``:String(t),onValueChange:t=>Z(e.field,t),children:[(0,g.jsx)(p.SelectTrigger,{className:`h-8 text-xs`,children:(0,g.jsx)(p.SelectValue,{placeholder:w(`lookup.filterPlaceholder`,{label:n})})}),(0,g.jsx)(p.SelectContent,{children:e.options?.map(e=>(0,g.jsx)(p.SelectItem,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:w(`lookup.filterPlaceholder`,{label:n}),onChange:t=>{let n=t.target.value;Z(e.field,n===``?``:Number(n))}})]});case`date`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>Z(e.field,t.target.value)})]});case`boolean`:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,g.jsx)(p.Checkbox,{checked:!!t,onCheckedChange:t=>Z(e.field,!!t)}),(0,g.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:w(`lookup.yes`)})]})]});default:return(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,g.jsx)(p.Input,{className:`h-8 text-xs`,value:t??``,placeholder:w(`lookup.filterPlaceholder`,{label:n}),onChange:t=>Z(e.field,t.target.value)})]})}},[M,Z]),Ee=(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,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.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,g.jsx)(p.DialogHeader,{children:(0,g.jsxs)(p.DialogTitle,{children:[n,r&&(0,g.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,g.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,g.jsx)(m.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,g.jsx)(p.Input,{placeholder:w(`table.search`),value:W,onChange:e=>se(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),B&&(0,g.jsx)(m.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`})]}),L&&L.length>0&&(0,g.jsx)(`div`,{className:`py-2`,children:S?(0,g.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:S({filterColumns:L,values:M,onChange:Z,onClear:we,activeCount:Q})}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:Q>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>j(e=>!e),children:[(0,g.jsx)(m.SlidersHorizontal,{className:`size-3.5`}),w(`lookup.filters`),Q>0&&(0,g.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:Q})]}),Q>0&&(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:we,children:[(0,g.jsx)(m.X,{className:`size-3`}),w(`lookup.clear`)]})]}),A&&(0,g.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:L.map(e=>(0,g.jsx)(`div`,{children:Te(e)},e.field))})]})}),V&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`}),(0,g.jsx)(`p`,{className:`text-sm text-destructive`,children:V}),(0,g.jsx)(p.Button,{variant:`outline`,size:`sm`,onClick:()=>R.refetch(),type:`button`,children:w(`lookup.retry`)})]}),C?(0,g.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:C({columns:ie,records:z,loading:B,totalCount:H,currentPage:G,pageSize:d,sortField:K,sortDirection:ae,onSort:oe,onPageChange:q,onRowClick:Y,isSelected:ce,multiple:r,idField:l,cellRenderer:b})}):(0,g.jsxs)(g.Fragment,{children:[B&&z.length===0&&!V&&(0,g.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,g.jsxs)(p.Table,{children:[(0,g.jsx)(p.TableHeader,{children:(0,g.jsxs)(p.TableRow,{className:`bg-muted/40`,children:[r&&(0,g.jsx)(p.TableHead,{className:`w-10`}),ie.map(e=>(0,g.jsx)(p.TableHead,{children:(0,g.jsx)(p.Skeleton,{className:`h-4 w-20`})},e.field))]})}),(0,g.jsx)(p.TableBody,{children:Array.from({length:ye},(e,t)=>(0,g.jsxs)(p.TableRow,{children:[r&&(0,g.jsx)(p.TableCell,{className:`w-10`,children:(0,g.jsx)(p.Skeleton,{className:`size-4 rounded`})}),ie.map(e=>(0,g.jsx)(p.TableCell,{children:(0,g.jsx)(p.Skeleton,{className:`h-4 w-full`})},e.field))]},t))})]})}),!B&&!V&&z.length===0&&(0,g.jsx)(`div`,{className:`py-8 text-center`,children:(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:w(`lookup.noRecords`)})}),!V&&z.length>0&&(0,g.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,"aria-busy":B||void 0,"data-state":B?`loading`:`idle`,tabIndex:0,onKeyDown:be,role:`grid`,"aria-label":`Records`,children:[B&&(0,g.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,g.jsx)(m.Loader2,{className:`size-6 animate-spin text-muted-foreground`})}),(0,g.jsxs)(p.Table,{style:Object.keys(P).length>0?{tableLayout:`fixed`}:void 0,children:[(0,g.jsx)(p.TableHeader,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,g.jsxs)(p.TableRow,{children:[r&&(0,g.jsx)(p.TableHead,{className:`w-10`}),ie.map(e=>{let t=P[e.field];return(0,g.jsxs)(p.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:()=>oe(e.field),"aria-sort":K===e.field?ae===`asc`?`ascending`:`descending`:`none`,children:[(0,g.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||pe(e.field),Se(e.field)]}),(0,g.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();Ce(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,g.jsx)(p.TableBody,{ref:k,children:z.map((e,t)=>{let n=J(e),i=ce(e),a=t===D;return(0,g.jsxs)(p.TableRow,{"data-row-index":t,className:(0,p.cn)(`cursor-pointer transition-colors`,Ee(i,t),a&&`ring-2 ring-primary ring-inset`),onClick:()=>Y(e),"data-testid":`record-row-${n}`,"aria-selected":i,children:[r&&(0,g.jsx)(p.TableCell,{className:`w-10`,children:i&&(0,g.jsx)(m.Check,{className:`size-4 text-primary`})}),ie.map(t=>(0,g.jsx)(p.TableCell,{className:`py-2.5`,children:xe(e,t)},t.field))]},n??t)})})]})]}),!V&&H>0&&(0,g.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,g.jsxs)(`span`,{children:[H===1?w(`lookup.recordCountOne`):w(`lookup.recordCount`,{count:H}),U>1&&` · ${w(`lookup.pageOf`,{current:G,total:U})}`]}),U>1&&(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:le,disabled:G<=1,type:`button`,"aria-label":w(`lookup.prevPage`),children:(0,g.jsx)(m.ChevronLeft,{className:`size-4`})}),(0,g.jsx)(p.Input,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(G),value:I,onChange:e=>re(e.target.value),onKeyDown:ge,"aria-label":w(`lookup.jumpToPage`),"data-testid":`record-picker-page-jump`}),(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:de,disabled:G>=U,type:`button`,"aria-label":w(`lookup.nextPage`),children:(0,g.jsx)(m.ChevronRight,{className:`size-4`})})]})]})]}),r&&(0,g.jsx)(p.DialogFooter,{children:(0,g.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:w(`table.selected`,{count:T.size})}),(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[(0,g.jsx)(p.Button,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:w(`common.cancel`)}),(0,g.jsx)(p.Button,{type:`button`,onClick:X,children:w(`common.confirm`)})]})]})})]})})}var _e,ve,ye,be=o((()=>{A(),de(),_e=10,ve=60,ye=5}));function xe(e,t){if(!(!e||!t))return t.includes(`.`)?t.split(`.`).reduce((e,t)=>e==null?e:e[t],e):e[t]}function Se(e,t=`name`){return e==null?``:String(typeof e==`object`?e[t]??e.name??e.username??e.label??``:e)}function Ce(e){let t=(e||``).trim();if(!t)return`?`;let n=t.split(/\s+/).filter(Boolean);if(n.length>=2)return(n[0][0]+n[n.length-1][0]).toUpperCase();let r=n[0];return/[㐀-鿿]/.test(r)?r.length<=2?r:r.slice(-2):r.slice(0,2).toUpperCase()}function Z(e,t){return!e||!t||t.length===0?``:t.map(t=>xe(e,t)).filter(e=>e!=null&&e!==``).map(e=>String(e)).join(` · `)}function we(e,t=`image`){let n=e?xe(e,t):void 0;return n?String(n):void 0}function Q(e,t=`id`){return!e||typeof e!=`object`?e:e[t]??e.id??e._id}function Te(e,t){let n=e??``,r=(t??``).trim().toLowerCase();if(!r||!n)return[];let i=n.toLowerCase(),a=[],o=0;for(;;){let e=i.indexOf(r,o);if(e===-1)break;a.push([e,e+r.length]),o=e+r.length}return a}var Ee=o((()=>{}));function De({text:e,query:t}){let n=t?Te(e,t):[];if(n.length===0)return(0,g.jsx)(g.Fragment,{children:e});let r=[],i=0;return n.forEach(([t,n],a)=>{t>i&&r.push(e.slice(i,t)),r.push((0,g.jsx)(`mark`,{className:`rounded-[2px] bg-primary/20 px-px text-inherit`,children:e.slice(t,n)},a)),i=n}),i<e.length&&r.push(e.slice(i)),(0,g.jsx)(g.Fragment,{children:r})}function Oe({record:e,displayField:t=`name`,subtitleFields:n,avatarField:r=`image`,selected:i=!1,active:a=!1,highlightQuery:o,onSelect:s,className:c}){let l=Se(e,t),d=Z(e,n),f=we(e,r),h=Ce(l),_=(0,u.useRef)(null);return(0,u.useEffect)(()=>{a&&_.current?.scrollIntoView?.({block:`nearest`})},[a]),(0,g.jsxs)(`button`,{ref:_,type:`button`,tabIndex:-1,onClick:()=>s?.(e),"aria-pressed":i,"data-testid":`person-row`,"data-active":a||void 0,className:(0,p.cn)(`flex w-full items-center gap-3 rounded-md px-2 py-1.5 text-left transition-colors`,`hover:bg-accent focus-visible:outline-none`,i&&`bg-accent`,a&&`bg-accent ring-1 ring-inset ring-ring`,c),children:[(0,g.jsxs)(p.Avatar,{className:`size-9 shrink-0`,children:[f&&(0,g.jsx)(p.AvatarImage,{src:f,alt:l}),(0,g.jsx)(p.AvatarFallback,{className:`text-xs`,children:h})]}),(0,g.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,g.jsx)(`div`,{className:`truncate text-sm font-medium`,children:l?(0,g.jsx)(De,{text:l,query:o}):`—`}),d&&(0,g.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:(0,g.jsx)(De,{text:d,query:o})})]}),i&&(0,g.jsx)(m.Check,{className:`size-4 shrink-0 text-primary`,"aria-hidden":!0})]})}var ke=o((()=>{Ee()}));function Ae({records:e,onRemove:t,displayField:n=`name`,avatarField:r=`image`,idField:i=`id`,label:a,onClear:o,clearLabel:s,emptyText:c,className:l}){let u=!!a||!!o&&e.length>0;return(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-col gap-1.5`,l),"data-testid":`selection-tray`,children:[u&&(0,g.jsxs)(`div`,{className:`flex items-center justify-between`,children:[a&&(0,g.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:a}),o&&e.length>0&&(0,g.jsx)(`button`,{type:`button`,onClick:o,className:`text-xs text-muted-foreground transition-colors hover:text-foreground`,"data-testid":`selection-clear`,children:s??`Clear all`})]}),e.length===0?(0,g.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:c??``}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>{let a=Q(e,i),o=Se(e,n),s=we(e,r),c=Ce(o);return(0,g.jsxs)(`span`,{"data-testid":`selection-chip`,className:`inline-flex items-center gap-1.5 rounded-full border bg-background py-0.5 pl-0.5 pr-1.5 text-sm`,children:[(0,g.jsxs)(p.Avatar,{className:`size-6 shrink-0`,children:[s&&(0,g.jsx)(p.AvatarImage,{src:s,alt:o}),(0,g.jsx)(p.AvatarFallback,{className:`text-[10px]`,children:c})]}),(0,g.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:o||`—`}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>t(a),"aria-label":`Remove ${o}`,className:`rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,g.jsx)(m.X,{className:`size-3.5`,"aria-hidden":!0})})]},String(a))})})]})}var je=o((()=>{Ee()}));function Me(){try{return typeof localStorage<`u`?localStorage:null}catch{return null}}function Ne(e){let t=Me();if(!e||!t)return[];try{let n=t.getItem(Fe+e);if(!n)return[];let r=JSON.parse(n);return Array.isArray(r)?r.slice(0,Ie):[]}catch{return[]}}function Pe(e,t){let n=Me();if(!(!e||t==null||t===``||!n))try{let r=[t,...Ne(e).filter(e=>e!==t)].slice(0,Ie);n.setItem(Fe+e,JSON.stringify(r))}catch{}}var Fe,Ie,Le=o((()=>{Fe=`objectui:lookup:recent:`,Ie=5}));function Re({open:e,onOpenChange:t,title:n,multiple:r=!1,dataSource:i,objectName:a,displayField:o=`name`,idField:s=`id`,subtitleFields:c,avatarField:l=`image`,expand:d,searchFields:f,pageSize:h=ze,lookupFilters:_,baseFilter:v,value:y,onSelect:b,onSelectRecords:x,inline:S=!1,trigger:C}){let{t:w}=te(),T=(0,p.useIsMobile)(),E=(0,u.useMemo)(()=>{let e={..._?.length?me(_):{},...v??{}};return Object.keys(e).length>0?e:void 0},[_,v]),ee=(0,u.useMemo)(()=>{if(d&&d.length)return d;let e=new Set;return(c??[]).forEach(t=>{t.includes(`.`)&&e.add(t.split(`.`)[0])}),e.size?Array.from(e):void 0},[d,c]),D=ue({dataSource:i,objectName:a,enabled:e,pageSize:h,filter:E,expand:ee,searchFields:f}),O=(0,u.useMemo)(()=>e?Ne(a):[],[e,a]),k=(0,u.useMemo)(()=>r?Array.isArray(y)?y:[]:y!=null&&y!==``?[y]:[],[r,y]),A=(0,u.useMemo)(()=>Array.from(new Set([...k,...O].map(e=>e))),[k,O]),j=ue({dataSource:i,objectName:a,enabled:e&&A.length>0,pageSize:Math.max(1,A.length),filter:{[s]:{$in:A}},expand:ee}),M=(0,u.useMemo)(()=>{let e=new Map;for(let t of j.records)e.set(String(Q(t,s)),t);return e},[j.records,s]),[N,P]=(0,u.useState)([]),ne=(0,u.useRef)(!1),F=(0,u.useRef)(!1);(0,u.useEffect)(()=>{e||(ne.current=!1,F.current=!1,P([]))},[e]),(0,u.useEffect)(()=>{if(!e||ne.current)return;if(k.length===0){ne.current=!0;return}if(j.loading){F.current=!0;return}if(!F.current)return;let t=k.map(e=>M.get(String(e))).filter(Boolean);P(t),ne.current=!0},[e,k,j.loading,M]);let I=(0,u.useMemo)(()=>new Set(N.map(e=>String(Q(e,s)))),[N,s]),re=(0,u.useCallback)((e,n)=>{b(r?e:e[0]??null),x?.(n),e.forEach(e=>Pe(a,e)),t(!1)},[r,a,b,x,t]),ie=(0,u.useCallback)(e=>{b(e.map(e=>Q(e,s))),x?.(e)},[b,x,s]),L=(0,u.useCallback)(e=>{let t=Q(e,s);if(!r){re([t],[e]);return}let n=String(t),i=N.some(e=>String(Q(e,s))===n),o=i?N.filter(e=>String(Q(e,s))!==n):[...N,e];P(o),S&&(i||Pe(a,t),ie(o))},[r,s,re,N,S,a,ie]),R=(0,u.useCallback)(e=>{let t=String(e),n=N.filter(e=>String(Q(e,s))!==t);P(n),S&&ie(n)},[s,N,S,ie]),z=(0,u.useCallback)(()=>{re(N.map(e=>Q(e,s)),N)},[re,N,s]),B=D.search.trim().length>0,V=(0,u.useMemo)(()=>B?[]:O.map(e=>M.get(String(e))).filter(Boolean),[B,O,M]),H=(0,u.useMemo)(()=>{if(B)return D.records;let e=new Set(O.map(String));return D.records.filter(t=>!e.has(String(Q(t,s))))},[B,D.records,O,s]),U=(0,u.useMemo)(()=>[...V,...H],[V,H]),[W,G]=(0,u.useState)(-1);(0,u.useEffect)(()=>{G(-1)},[D.search,D.records]),(0,u.useEffect)(()=>{G(e=>e>=U.length?U.length-1:e)},[U.length]);let K=(0,u.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),G(e=>U.length?Math.min(U.length-1,e+1):-1)):e.key===`ArrowUp`?(e.preventDefault(),G(e=>Math.max(0,e-1))):e.key===`Enter`?W>=0&&W<U.length&&(e.preventDefault(),L(U[W])):e.key===`Backspace`&&D.search.length===0&&r&&N.length>0&&R(Q(N[N.length-1],s))},[U,W,L,D.search,r,N,R,s]),ae=D.loading&&!D.error&&D.records.length===0&&V.length===0,q=D.loading&&!ae,oe=!D.loading&&!D.error&&H.length===0&&V.length===0,se=(e,t)=>{let n=Q(e,s);return(0,g.jsx)(Oe,{record:e,displayField:o,subtitleFields:c,avatarField:l,selected:I.has(String(n)),active:t===W,highlightQuery:D.search,onSelect:L},String(n))},J=n||w(`lookup.selectRecord`),ce=(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(m.Search,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`,"aria-hidden":!0}),(0,g.jsx)(p.Input,{autoFocus:!T,value:D.search,onChange:e=>D.setSearch(e.target.value),onKeyDown:K,placeholder:w(`table.search`),className:`px-8`,role:`combobox`,"aria-expanded":!0,"aria-controls":`people-picker-list`,"data-testid":`people-picker-search`}),D.loading&&(0,g.jsx)(m.Loader2,{className:`pointer-events-none absolute right-2.5 top-1/2 size-4 -translate-y-1/2 animate-spin text-muted-foreground`,"aria-hidden":!0})]}),(0,g.jsx)(p.ScrollArea,{className:`min-h-0 flex-1`,"data-testid":`people-picker-list`,children:(0,g.jsx)(`div`,{id:`people-picker-list`,role:`listbox`,"aria-busy":D.loading,className:(0,p.cn)(`flex flex-col gap-0.5 pr-2 transition-opacity`,q&&`opacity-70`),children:D.error?(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-8 text-center text-sm text-muted-foreground`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`,"aria-hidden":!0}),(0,g.jsx)(`span`,{className:`max-w-xs`,children:D.error}),(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:D.refetch,children:w(`lookup.retry`)})]}):ae?Array.from({length:Be}).map((e,t)=>(0,g.jsxs)(`div`,{className:`flex items-center gap-3 px-2 py-1.5`,children:[(0,g.jsx)(p.Skeleton,{className:`size-9 shrink-0 rounded-full`}),(0,g.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,g.jsx)(p.Skeleton,{className:`h-3 w-1/3`}),(0,g.jsx)(p.Skeleton,{className:`h-2.5 w-1/2`})]})]},t)):(0,g.jsxs)(g.Fragment,{children:[V.length>0&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`px-2 py-1 text-xs font-medium text-muted-foreground`,children:w(`lookup.recentlyUsed`)}),V.map((e,t)=>se(e,t)),H.length>0&&(0,g.jsxs)(`div`,{className:`mt-1 flex items-center gap-1.5 px-2 py-1 text-xs font-medium text-muted-foreground`,children:[(0,g.jsx)(`span`,{children:w(`lookup.allResults`)}),(0,g.jsxs)(`span`,{className:`font-normal opacity-70`,children:[`· `,D.total]})]})]}),H.map((e,t)=>se(e,V.length+t)),oe&&(0,g.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:w(`lookup.noRecords`)})]})})}),r&&!S&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Ae,{records:N,onRemove:R,onClear:()=>P([]),clearLabel:w(`lookup.clear`),displayField:o,avatarField:l,idField:s,label:w(`table.selected`,{count:N.length}),className:(0,p.cn)(`border-t pt-3`)}),(0,g.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:w(`common.cancel`)}),(0,g.jsx)(p.Button,{type:`button`,onClick:z,children:w(`common.confirm`)})]})]})]});return S?T?(0,g.jsxs)(p.Sheet,{open:e,onOpenChange:t,children:[(0,g.jsx)(p.SheetTrigger,{asChild:!0,children:C}),(0,g.jsxs)(p.SheetContent,{side:`bottom`,className:`flex h-[85vh] flex-col gap-3`,"data-testid":`people-picker-sheet`,children:[(0,g.jsx)(p.SheetHeader,{className:`text-left`,children:(0,g.jsx)(p.SheetTitle,{children:J})}),ce]})]}):(0,g.jsxs)(p.Popover,{open:e,onOpenChange:t,children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:C}),(0,g.jsx)(p.PopoverContent,{align:`start`,className:`flex max-h-[min(28rem,60vh)] w-[var(--radix-popover-trigger-width)] min-w-72 flex-col gap-3 p-3`,"data-testid":`people-picker-inline`,children:ce})]}):T?(0,g.jsx)(p.Sheet,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.SheetContent,{side:`bottom`,className:`flex h-[85vh] flex-col gap-3`,"data-testid":`people-picker-sheet`,children:[(0,g.jsx)(p.SheetHeader,{className:`text-left`,children:(0,g.jsx)(p.SheetTitle,{children:J})}),ce]})}):(0,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.DialogContent,{className:`flex max-h-[80vh] flex-col gap-3 sm:max-w-lg`,"data-testid":`people-picker-dialog`,children:[(0,g.jsx)(p.DialogHeader,{children:(0,g.jsx)(p.DialogTitle,{children:J})}),ce]})})}var ze,Be,Ve=o((()=>{de(),be(),Ee(),ke(),je(),Le(),A(),ze=25,Be=6}));function He(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}function Ue(e,{displayField:t,max:n=4}){let r=e?.fields??{},i=e=>r[e]??{},a=e=>{let t=i(e);return{field:e,...t.label?{label:t.label}:{},...t.type?{type:t.type}:{}}};if(Object.keys(r).length===0)return[];let o=e=>!Array.isArray(e)||e.length===0?null:He([t,...e.filter(e=>typeof e==`string`&&e.length>0).filter(e=>e!==t)]).slice(0,n).map(a);return o(e?.highlightFields)||o(e?.displayFields)||He([t,...Object.keys(r).filter(e=>{if(e===t||We.has(e))return!1;let n=i(e);return!(n.hidden||n.type&&Ge.has(n.type))})]).slice(0,n).map(a)}var We,Ge,Ke=o((()=>{We=new Set([`id`,`_id`,`created`,`modified`,`created_at`,`updated_at`,`created_by`,`updated_by`,`modified_by`,`owner_id`,`organization_id`,`space`,`company_id`,`instance_state`,`locked`,`is_deleted`,`deleted`]),Ge=new Set([`json`,`object`,`grid`,`html`,`richtext`,`markdown`,`code`,`image`,`file`,`avatar`,`vector`,`location`,`geometry`,`textarea`,`secret`,`password`,`encrypted`])}));function qe(e){Ye=e}function Je(){return Ye}var Ye,Xe=o((()=>{})),Ze=s({LookupField:()=>rt});function Qe(e){return!!e&&!ot.test(e)&&!st.has(e)}function $e(e,t){if(!e||typeof e!=`object`||!t)return null;let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=t.replace(/\{([^{}]+)\}/g,(t,n)=>{let i=e[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r&&i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim()||null}function et(e,t,n,r,i,a){let o=e[n]??e.id??e._id??e.externalId,s=i?$e(e,i):null,c;if(a){let t=(0,d.getRecordDisplayName)(a,e),n=e?.id??e?._id;t===`Untitled`||n!=null&&t===`Record #${n}`||(c=t)}let l=s??e[t]??c??e.label??e.name??e.full_name??e.title??e.subject??e.externalId??String(o),u=r?e[r]:void 0;return{value:o,label:String(l),description:u,...e}}function tt(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t.startsWith(`{`)||!t.endsWith(`}`))return null;try{let e=JSON.parse(t);return e&&typeof e==`object`&&!Array.isArray(e)?e:null}catch{return null}}function nt(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function rt({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=(0,u.useState)(!1),{t:s}=te(),c=u.default.useId(),[l,d]=(0,u.useState)(null),[f,_]=(0,u.useState)([]),[v,y]=(0,u.useState)(-1),b=(0,u.useRef)(null),x=n||i.schema,S=x?.field,C=S&&typeof S==`object`&&(`reference_to`in S||`reference`in S||`type`in S)?S:x,w=C?.options||[],T=C?.multiple||!1,E=C?.display_field||C?.displayField||C?.reference_field||`name`,ee=C?.description_field??C?.descriptionField,D=C?.id_field||`id`,O=C?.reference_to||C?.reference,k=C?.allow_create??C?.allowCreate,A=k==null?Qe(O):!!k,j=C?.lookup_columns??C?.lookupColumns,M=C?.lookup_page_size??C?.lookupPageSize,N=C?.lookup_filters??C?.lookupFilters,P=C?.picker,ne=C?.subtitle,F=C?.avatar_field??C?.avatarField??`image`,I=(0,u.useMemo)(()=>{let e=C?.depends_on??C?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[C?.depends_on,C?.dependsOn]),re=i.dependentValues,ie=(0,u.useContext)(at),L=ie?.dataSource??null,R=i.dataSource??x?.dataSource??C?.dataSource??L,z=(0,u.useMemo)(()=>re||(ie?.formValues??ie?.data??{}),[re,ie?.formValues,ie?.data]),B=(0,u.useMemo)(()=>I.length!==0&&I.some(({field:e})=>{let t=z[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[I,z]),V=R!=null&&typeof R.find==`function`&&!!O,[H,U]=(0,u.useState)(null);(0,u.useEffect)(()=>{if(!R||!O)return;let e=R.getObjectSchema;if(typeof e!=`function`)return;let t=!0;return Promise.resolve(e.call(R,O)).then(e=>{t&&U(e)}).catch(()=>{}),()=>{t=!1}},[R,O]);let W=(0,u.useMemo)(()=>{let e=H?.titleFormat;return typeof e==`string`?e:e&&typeof e==`object`&&typeof e.source==`string`?e.source:null},[H]),G=(0,u.useMemo)(()=>{if(j&&j.length>0)return j;let e=Ue(H,{displayField:E});return e.length>0?e:void 0},[j,H,E]),K=(0,u.useMemo)(()=>{if(ee)return ee;let e=G?.find(e=>(typeof e==`string`?e:e.field)!==E);if(e)return typeof e==`string`?e:e.field},[ee,G,E]),ae=(0,u.useMemo)(()=>{if(!G)return;let e=[];for(let t of G)if(typeof t==`object`&&t.type){let n=nt(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[G]),q=i.onCreateNew??x?.onCreateNew,[oe,se]=(0,u.useState)(!1),J=(0,u.useMemo)(()=>{let e={};for(let{field:t,param:n}of I){let r=z[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}return Object.keys(e).length>0?e:void 0},[I,z]),ce=(0,u.useMemo)(()=>{let e={...N&&N.length>0?me(N):{},...J??{}};return Object.keys(e).length>0?e:void 0},[J,N]),Y=ue({dataSource:R,objectName:O,enabled:a&&V&&!B,pageSize:it,filter:ce}),X=Y.search,le=Y.loading,de=Y.total,fe=Y.error??l,pe=(0,u.useMemo)(()=>Y.records.map(e=>et(e,E,D,K,W,H)),[Y.records,E,D,K,W,H]),he=V?pe:w,_e=(0,u.useMemo)(()=>{if(V||!X)return he;let e=X.toLowerCase();return he.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[V,he,X]);(0,u.useEffect)(()=>{y(-1)},[_e.length]),(0,u.useEffect)(()=>{a||y(-1)},[a]);let ve=(0,u.useCallback)(e=>Y.setSearch(e),[Y.setSearch]);(0,u.useEffect)(()=>{if(!V||!R||!O)return;let t=(T?Array.isArray(e)?e:[]:e!=null&&e!==``?[e]:[]).filter(e=>e!=null&&e!==``&&typeof e!=`object`&&!tt(e));if(!t.length)return;let n=t.filter(e=>!ye(e));if(!n.length)return;let r=!1;return(async()=>{try{let e=[];for(let t of n)if(typeof R.findOne==`function`){let n=await R.findOne(O,t);n&&e.push(et(n,E,D,K,W,H))}else{let n=await R.find(O,{$filter:{[D]:t},$top:1}),r=n?.data??n??[];r[0]&&e.push(et(r[0],E,D,K,W,H))}!r&&e.length&&_(t=>{let n=new Map(t.map(e=>[e.value,e]));for(let t of e)n.set(t.value,t);return Array.from(n.values())})}catch{}})(),()=>{r=!0}},[e,V,O,E,D,K,T]);let ye=(0,u.useCallback)(e=>w.find(t=>t.value===e)??pe.find(t=>t.value===e)??f.find(t=>t.value===e),[w,pe,f]),be=(0,u.useCallback)(e=>{let t=String(e);return w.find(e=>String(e.value)===t)??pe.find(e=>String(e.value)===t)??f.find(e=>String(e.value)===t)},[w,pe,f]),xe=(0,u.useCallback)(e=>{let t=typeof e==`object`&&e?e:tt(e);return t?t[D]??t.id??t._id??t.externalId:e},[D]),Se=(0,u.useCallback)(e=>{if(e==null||e===``)return;let t=typeof e==`object`?e:tt(e);return t?et(t,E,D,K,W,H):ye(e)??be(e)},[ye,be,E,D,K,W,H]),Z=T?(Array.isArray(e)?e:[]).map(Se).filter(Boolean):e?[Se(e)].filter(Boolean):[],we=i.onSelectRecord,Q=(0,u.useCallback)(n=>{if(n&&n.value!=null&&_(e=>{let t=new Map(e.map(e=>[e.value,e]));return t.set(n.value,n),Array.from(t.values())}),T){let r=(Array.isArray(e)?e:[]).map(xe);r.includes(n.value)?t(r.filter(e=>e!==n.value)):(O&&Pe(O,n.value),t([...r,n.value]))}else O&&Pe(O,n.value),we?we(n):t(n.value),o(!1)},[T,e,t,we,O,xe]),Te=n=>{t(T?(Array.isArray(e)?e:[]).map(xe).filter(e=>e!==n):null)},Ee=(0,u.useCallback)(e=>{let t=e.map(e=>et(e,E,D,K,W,H));O&&t.forEach(e=>Pe(O,e.value)),_(t)},[E,D,K,W,O]),[De,Oe]=(0,u.useState)([]);(0,u.useEffect)(()=>{if(!a||!V||!R||!O||X)return;let e=Ne(O);if(!e.length){Oe([]);return}let t=!1;return(async()=>{try{let n=[];for(let t of e){let e=ye(t);if(e){n.push(e);continue}if(typeof R.findOne==`function`){let e=await R.findOne(O,t);e&&n.push(et(e,E,D,K,W,H))}}t||Oe(n)}catch{t||Oe([])}})(),()=>{t=!0}},[a,V,O,X]);let ke=!X&&V?De.length:0,Ae=(0,u.useMemo)(()=>{if(X||!V||De.length===0)return _e;let e=new Set(De.map(e=>e.value));return[...De,..._e.filter(t=>!e.has(t.value))]},[X,V,De,_e]);(0,u.useEffect)(()=>{y(-1)},[Ae.length]);let[je,Me]=(0,u.useState)(!1),{execute:Fe}=(0,h.useAction)(),Ie=(0,h.useHasActionProvider)(),Le=!!q||A&&(Ie||V),ze=(0,u.useCallback)(async e=>{let t=(e||``).trim();if(q){q(t),o(!1);return}if(!(!A||!O)){if(d(null),Ie){o(!1),await new Promise(e=>setTimeout(e,0));let e=await Fe({type:`modal`,modal:{objectName:O,mode:`create`}});if(e?.success&&e.data){let t=et(e.data,E,D,K,W,H);_(e=>[t,...e.filter(e=>e.value!==t.value)]),Q(t);return}if(!(e?.success&&e.modal))return}if(!(!R||!t)){Me(!0);try{let e=et(await R.create(O,{[E]:t}),E,D,K,W,H);_(t=>[e,...t.filter(t=>t.value!==e.value)]),Q(e)}catch(e){d(e instanceof Error?e.message:String(e))}finally{Me(!1)}}}},[q,A,O,Ie,Fe,R,E,D,K,W,H,Q]),Be=(0,u.useCallback)(e=>{if(!G||G.length===0)return;let t=[];for(let n of G){let r=typeof n==`string`?n:n.field;if(r===E)continue;let i=e[r];if(i==null||i===``)continue;let a=typeof n==`string`?r:n.label||r,o=typeof i==`object`?i.name??i.label??JSON.stringify(i):i;t.push(`${a}: ${o}`)}return t.length?t.join(` · `):void 0},[G,E]),Ve=(0,u.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),y(e=>e<Ae.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),y(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),v>=0&&v<Ae.length&&Q(Ae[v]))},[Ae,v,Q]);if((0,u.useEffect)(()=>{v>=0&&b.current&&b.current.querySelector(`[data-lookup-index="${v}"]`)?.scrollIntoView({block:`nearest`})},[v]),r)return Z.length?T?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>(0,g.jsx)(p.Badge,{variant:`outline`,children:e?.label||e?.[E]},t))}):(0,g.jsx)(`span`,{className:`text-sm`,children:Z[0]?.label||Z[0]?.[E]}):(0,g.jsx)(p.EmptyValue,{});let He=!!i.compact,We=Z[0]?.label||Z[0]?.[E],Ge=(0,g.jsxs)(p.Button,{variant:`outline`,className:(0,p.cn)(`min-w-0 flex-1 justify-start text-left font-normal`,He&&`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus-visible:ring-1 focus-visible:ring-ring/60`),type:`button`,disabled:B||i.disabled,"data-testid":B?`lookup-trigger-gated`:i.name||x?.name?`lookup-trigger-${i.name||x.name}`:`lookup-trigger`,title:B?s(`lookup.selectFirst`,{fields:I.map(e=>e.field).join(`, `)}):void 0,children:[(0,g.jsx)(m.Search,{className:(0,p.cn)(`size-4 shrink-0 text-muted-foreground`,He?`mr-1.5`:`mr-2`)}),(0,g.jsx)(`span`,{className:(0,p.cn)(`truncate`,He&&Z.length===0&&`text-muted-foreground`),children:B?s(`lookup.selectFirst`,{fields:I.map(e=>e.field).join(`, `)}):He&&!T&&Z.length>0?We:Z.length===0?x?.placeholder||s(`common.select`):T?s(`table.selected`,{count:Z.length}):s(`common.select`)})]});return(0,g.jsxs)(`div`,{className:He?``:`space-y-2`,children:[Z.length>0&&!He&&(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>{let n=e?.label||e?.[E];if(P===`search`){let r=e?.[F]||e?.image;return(0,g.jsxs)(`span`,{"data-testid":`people-field-chip`,className:`inline-flex items-center gap-1.5 rounded-full border bg-background py-0.5 pl-0.5 pr-1.5 text-sm`,children:[(0,g.jsxs)(p.Avatar,{className:`size-6 shrink-0`,children:[r&&(0,g.jsx)(p.AvatarImage,{src:r,alt:String(n||``)}),(0,g.jsx)(p.AvatarFallback,{className:`text-[10px]`,children:Ce(String(n||``))})]}),(0,g.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:n}),(0,g.jsx)(`button`,{onClick:()=>Te(e?.value),className:`rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,type:`button`,"aria-label":s(`lookup.remove`,{label:n}),children:(0,g.jsx)(m.X,{className:`size-3`})})]},t)}return(0,g.jsxs)(p.Badge,{variant:`outline`,className:`gap-1`,children:[n,(0,g.jsx)(`button`,{onClick:()=>Te(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":s(`lookup.remove`,{label:n}),children:(0,g.jsx)(m.X,{className:`size-3`})})]},t)})}),P===`search`&&V&&R&&O?(0,g.jsx)(Re,{inline:!0,trigger:Ge,open:oe,onOpenChange:se,title:x?.label||s(`common.select`),multiple:T,dataSource:R,objectName:O,displayField:E,idField:D,subtitleFields:ne,avatarField:F,pageSize:M,value:e,onSelect:t,onSelectRecords:Ee,lookupFilters:N,baseFilter:J}):(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsxs)(p.Popover,{open:a,onOpenChange:e=>{B||o(e)},children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:Ge}),(0,g.jsxs)(p.PopoverContent,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,g.jsx)(`div`,{className:`p-2`,children:(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(m.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,g.jsx)(p.Input,{placeholder:s(`common.search`)+`...`,value:X,onChange:e=>ve(e.target.value),onKeyDown:Ve,className:`w-full pl-9 h-8 text-sm`,role:`combobox`,"aria-autocomplete":`list`,"aria-controls":c,"aria-expanded":a,"aria-activedescendant":v>=0?`${c}-opt-${v}`:void 0}),le&&(0,g.jsx)(m.Loader2,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),fe&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,g.jsx)(m.AlertCircle,{className:`size-5 text-destructive`}),(0,g.jsx)(`p`,{className:`text-sm text-destructive`,children:fe}),(0,g.jsx)(p.Button,{variant:`outline`,size:`sm`,onClick:()=>Y.refetch(),type:`button`,children:s(`lookup.retry`)})]}),le&&_e.length===0&&!fe&&(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,g.jsx)(m.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`lookup.loading`)})]}),!fe&&!(le&&_e.length===0)&&(0,g.jsx)(`div`,{ref:b,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,id:c,children:Ae.length===0?(0,g.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`lookup.noOptions`)}),Le&&(0,g.jsxs)(p.Button,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,disabled:je,onClick:()=>ze(X),children:[je?(0,g.jsx)(m.Loader2,{className:`size-4 animate-spin`}):(0,g.jsx)(m.Plus,{className:`size-4`}),X?s(`lookup.createNamed`,{name:X}):s(`lookup.createNew`)]})]}):(0,g.jsxs)(g.Fragment,{children:[Ae.map((t,n)=>{let r=T?(Array.isArray(e)?e:[]).map(xe).includes(t.value):xe(e)===t.value,i=n===v,a=ke>0&&n===0,o=ke>0&&n===ke;return(0,g.jsxs)(u.default.Fragment,{children:[a&&(0,g.jsx)(`div`,{className:`px-3 pt-2 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:s(`lookup.recentlyUsed`)}),o&&(0,g.jsx)(`div`,{className:`mt-1 border-t px-3 pt-2 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:s(`lookup.allResults`)}),(0,g.jsxs)(`button`,{id:`${c}-opt-${n}`,"data-lookup-index":n,role:`option`,"aria-selected":r,title:Be(t),onClick:()=>Q(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${i?`bg-accent text-accent-foreground`:r?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,g.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,g.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,g.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),r&&(0,g.jsx)(p.Badge,{variant:`default`,className:`ml-2 shrink-0`,children:s(`lookup.selectedBadge`)})]})]},t.value)}),V&&de>_e.length&&(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:s(`lookup.showingResults`,{shown:_e.length,total:de})}),V&&de>_e.length&&(0,g.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),se(!0)},"data-testid":`show-all-results`,children:[(0,g.jsx)(m.TableProperties,{className:`size-3.5`}),s(`lookup.showAllResults`,{count:de})]}),Le&&(0,g.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`,disabled:je,onClick:()=>ze(X),children:[je?(0,g.jsx)(m.Loader2,{className:`size-3.5 animate-spin`}):(0,g.jsx)(m.Plus,{className:`size-3.5`}),X?s(`lookup.createNamed`,{name:X}):s(`lookup.createNew`)]})]})})]})]}),V&&P!==`search`&&(0,g.jsx)(p.Button,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,disabled:B||i.disabled,onClick:()=>se(!0),"aria-label":s(`lookup.browseAll`),title:B?s(`lookup.selectFirst`,{fields:I.map(e=>e.field).join(`, `)}):s(`lookup.browseAll`),"data-testid":`browse-all-records`,children:(0,g.jsx)(m.TableProperties,{className:`size-4`})})]}),V&&R&&O&&P!==`search`&&(0,g.jsx)(ge,{open:oe,onOpenChange:se,title:x?.label||s(`common.select`),multiple:T,dataSource:R,objectName:O,columns:G,displayField:E,titleFormat:W,idField:D,pageSize:M,value:e,onSelect:t,onSelectRecords:Ee,lookupFilters:N,baseFilter:J,cellRenderer:Je(),filterColumns:ae})]})}var it,at,ot,st,ct=o((()=>{be(),Ve(),de(),Ke(),Le(),Ee(),Xe(),A(),it=50,at=h.SchemaRendererContext,ot=/^(sys_|cloud_|ai_)/,st=new Set([`user`,`users`])}));C(),E(),O(),N(),re(),R(),V(),W(),oe(),ce(),le(),ct();function lt(e){if(Array.isArray(e))return e.map(e=>String(e)).filter(Boolean);if(typeof e==`string`){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e.map(e=>String(e)).filter(Boolean):[String(e)].filter(Boolean)}catch{return t.split(`,`).map(e=>e.trim()).filter(Boolean)}}return[]}var ut=[`platform`,`org`,`other`],dt={platform:`Platform`,org:`Organization`,other:`Other`};function ft({value:e,onChange:t,readonly:n,className:r,...i}){let a=u.default.useContext(h.SchemaRendererContext),o=i.dataSource??a?.dataSource??null,s=i.disabled,[c,l]=u.default.useState(null),d=u.default.useMemo(()=>lt(e),[e]);u.default.useEffect(()=>{if(!o||typeof o.find!=`function`)return;let e=!1;return(async()=>{try{let t=await o.find(`sys_capability`,{$filter:{active:!0},$top:500}),n=t?.data??t?.records??(Array.isArray(t)?t:[]);e||l(Array.isArray(n)?n:[])}catch{e||l([])}})(),()=>{e=!0}},[o]);let f=u.default.useCallback(e=>t(JSON.stringify(e)),[t]),m=u.default.useMemo(()=>{let e=new Map;for(let t of c??[])t?.name&&e.set(t.name,t);for(let t of d)e.has(t)||e.set(t,{name:t,label:t,scope:`other`});return e},[c,d]),_=e=>m.get(e)?.label||e,v=u.default.useMemo(()=>{let e=new Map;for(let t of m.values()){let n=ut.includes(t.scope)?t.scope:`other`,r=e.get(n)??[];r.push(t),e.set(n,r)}return ut.filter(t=>e.has(t)).map(t=>({scope:t,label:dt[t]??t,items:(e.get(t)??[]).sort((e,t)=>(e.label||e.name).localeCompare(t.label||t.name))}))},[m]);if(n)return d.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:d.map(e=>(0,g.jsx)(p.Badge,{variant:`outline`,title:m.get(e)?.description,children:_(e)},e))});let y=e=>{let t=d.includes(e)?d.filter(t=>t!==e):[...d,e];f(t)};return(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-col gap-3`,r),children:[c===null&&v.length===0&&(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Loading capabilities…`}),v.map(e=>(0,g.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,g.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.items.map(e=>{let t=d.includes(e.name);return(0,g.jsx)(`button`,{type:`button`,onClick:()=>y(e.name),disabled:s,"aria-pressed":t,title:e.description||void 0,className:(0,p.cn)(`rounded-full border px-3 py-1 text-sm transition-colors disabled:opacity-50`,t?`border-primary bg-primary text-primary-foreground`:`border-input bg-background text-foreground hover:bg-accent`),children:e.label||e.name},e.name)})})]},e.scope))]})}var pt=s({DateTimeField:()=>mt});function mt({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=new Date(e);return(0,g.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{P(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var ht=o((()=>{ne()})),gt=s({TimeField:()=>_t});function _t({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})});let{inputType:a,...o}=i;return(0,g.jsx)(p.Input,{...o,type:`time`,value:e||``,onChange:e=>t(e.target.value),onClick:e=>{P(e.currentTarget),o.onClick?.(e)},disabled:r||o.disabled})}var vt=o((()=>{ne()})),yt=s({PercentField:()=>bt});function bt({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.precision??2,l=typeof s?.max==`number`?s.max:void 0,u=l!=null&&l>1,d=e=>u?e:e*100,f=e=>u?e:e/100,m=u?l:100;if(r)return e==null?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[d(e).toFixed(c),`%`]});let h=e==null?``:d(e),_=e==null?0:d(e),v=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:f(n))},y=e=>{if(r||o.disabled)return;if(!Array.isArray(e)||e.length===0){t(null);return}let n=e[0];t(typeof n==`number`?f(n):null)},b=10**-c;return(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.Input,{...o,type:`number`,value:h,onChange:v,placeholder:s?.placeholder||`0`,disabled:r||o.disabled,className:`pr-8 ${a||``}`,step:(10**-c).toFixed(c),"aria-invalid":!!i}),(0,g.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,g.jsx)(p.Slider,{value:[_],onValueChange:y,min:0,max:m,step:b,disabled:r||o.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var xt=o((()=>{})),St=s({PasswordField:()=>Ct});function Ct({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,g.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:l,...d}=a;return(0,g.jsxs)(`div`,{className:`relative`,children:[(0,g.jsx)(p.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,g.jsx)(p.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,g.jsx)(m.EyeOff,{className:`size-4 text-gray-500`}):(0,g.jsx)(m.Eye,{className:`size-4 text-gray-500`})})]})}var wt=o((()=>{})),Tt=s({FileField:()=>Et});function Et({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,f=s?.capture??null,h=!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=f===!1?!1:f??(h&&v?`environment`:null),[b,x]=(0,u.useState)(!1),[S,C]=(0,u.useState)([]),{upload:w}=(0,_.useUpload)(),[T,E]=(0,u.useState)({}),[ee,D]=(0,u.useState)(!1),O=e?Array.isArray(e)?e:[e]:[],k=(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){D(!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?[...O,...e]:e[0])}finally{D(!1),E({})}}},[O,c,t,d,w]),te=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!0)},[]),A=(0,u.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),x(!1)},[]),j=(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()),n=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(`/*`,`/`)))});k(n)}else k(t)},[l,k]);if(r)return e?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,g.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,g.jsx)(p.EmptyValue,{});let M=e=>{k(Array.from(e.target.files||[]))},N=e=>{if(c){let n=O.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},P=e=>(e.mime_type||``).startsWith(`image/`);return(0,g.jsxs)(`div`,{className:i.className,children:[(0,g.jsx)(`input`,{ref:a,type:`file`,multiple:c,accept:l,onChange:M,className:`hidden`}),y&&(0,g.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,capture:y,onChange:M,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{onDragOver:te,onDragLeave:A,onDrop:j,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(),a.current?.click())},children:[(0,g.jsx)(m.Upload,{className:`size-8 ${b?`text-primary`:`text-muted-foreground`}`}),(0,g.jsxs)(`div`,{className:`text-center`,children:[(0,g.jsx)(`p`,{className:`text-sm font-medium`,children:b?`Drop files here`:`Drag & drop files here`}),(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,y?` • use the camera button below`:``]})]})]}),y&&(0,g.jsxs)(p.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,g.jsx)(m.Camera,{className:`size-4 mr-2`}),y===`user`?`Take selfie`:`Take photo`]}),ee&&(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,g.jsx)(m.Loader2,{className:`size-3 animate-spin`}),(0,g.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,g.jsx)(`div`,{className:`space-y-0.5`,children:S.map((e,t)=>(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),O.length>0&&(0,g.jsx)(`div`,{className:`space-y-1`,children:O.map((e,t)=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[N(e)&&e.url?(0,g.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded shrink-0`}):N(e)?(0,g.jsx)(m.ImageIcon,{className:`size-4 text-muted-foreground shrink-0`}):(0,g.jsx)(m.File,{className:`size-4 text-muted-foreground shrink-0`}),(0,g.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),M(t)},className:`h-6 w-6 p-0`,children:(0,g.jsx)(m.X,{className:`size-3`})})]},t))})]})]})}var Ct=o((()=>{})),wt=s({ImageCropperDialog:()=>Tt}),Tt,Et=o((()=>{Tt=({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,f]=(0,u.useState)({x:0,y:0,width:100,height:100}),[h,_]=(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;f({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(!h||!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-h.ox,i=(e.clientY-t.top)*n-h.oy,a=Math.max(0,Math.min(h.cx+r,s.current.naturalWidth-d.width)),c=Math.max(0,Math.min(h.cy+i,s.current.naturalHeight-d.height));f(e=>({...e,x:a,y:c}))},[h,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,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.DialogContent,{className:`max-w-xl`,children:[(0,g.jsxs)(p.DialogHeader,{children:[(0,g.jsx)(p.DialogTitle,{children:`Crop & rotate image`}),(0,g.jsx)(p.DialogDescription,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[v?(0,g.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,g.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,g.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,g.jsxs)(`span`,{children:[`Crop: `,Math.round(d.width),` × `,Math.round(d.height),` px`]}),(0,g.jsxs)(`span`,{children:[`Rotation: `,c,`°`]})]})]}),(0,g.jsxs)(p.DialogFooter,{className:`flex justify-between sm:justify-between`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,onClick:C,"data-testid":`image-cropper-rotate`,children:[(0,g.jsx)(m.RotateCw,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,g.jsxs)(p.Button,{type:`button`,onClick:w,disabled:!v,"data-testid":`image-cropper-confirm`,children:[(0,g.jsx)(m.Crop,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})}})),Dt=s({ImageField:()=>Ot});function Ot({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,f]=(0,u.useState)(null),{upload:h}=(0,_.useUpload)(),[v,y]=(0,u.useState)(!1);if(r)return e?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,g.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,g.jsx)(p.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 h(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 h(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),f(null)}}},[d,b,s,t,h]),w=(0,u.useCallback)(e=>{let t=b[e];t?.url&&f({index:e,src:t.url,name:t.name||`image-${e}.png`})},[b]);return(0,g.jsxs)(`div`,{className:i.className,children:[(0,g.jsx)(`input`,{ref:a,type:`file`,multiple:s,accept:c,onChange:x,className:`hidden`}),(0,g.jsxs)(`div`,{className:`space-y-2`,children:[b.length>0&&(0,g.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:b.map((e,t)=>(0,g.jsxs)(`div`,{className:`relative group`,children:[(0,g.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,g.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[l&&(0,g.jsx)(p.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,g.jsx)(m.Crop,{className:`size-3`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>S(t),className:`h-6 w-6 p-0`,children:(0,g.jsx)(m.X,{className:`size-3`})})]})]},t))}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,onClick:()=>a.current?.click(),className:`w-full`,disabled:v,"data-testid":`image-field-upload-button`,children:[v?(0,g.jsx)(m.Loader2,{className:`size-4 mr-2 animate-spin`}):(0,g.jsx)(m.Image,{className:`size-4 mr-2`}),v?`Uploading…`:b.length>0?`Add More Images`:`Upload Image`]})]}),l&&d&&(0,g.jsx)(u.Suspense,{fallback:null,children:(0,g.jsx)(kt,{open:!0,onOpenChange:e=>!e&&f(null),src:d.src,outputName:d.name,onConfirm:C})})]})}var kt,At=o((()=>{kt=(0,u.lazy)(()=>Promise.resolve().then(()=>(Et(),wt)).then(e=>({default:e.ImageCropperDialog})))})),jt=s({LocationField:()=>Mt});function Mt({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,g.jsx)(`span`,{className:`text-sm`,children:o||(0,g.jsx)(p.EmptyValue,{})}):(0,g.jsx)(p.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 Nt=o((()=>{})),Pt=s({FormulaField:()=>Ft});function Ft({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,g.jsx)(p.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,g.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var It=o((()=>{})),Lt=s({SummaryField:()=>Rt});function Rt({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,g.jsx)(p.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,g.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var zt=o((()=>{})),Bt=s({AutoNumberField:()=>Vt});function Vt({value:e,field:t,...n}){return e==null?(0,g.jsx)(p.EmptyValue,{className:n.className}):(0,g.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var Ht=o((()=>{})),Ut=s({UserField:()=>Gt});function Wt(e){let t=Array.isArray(e)?e:[];return t.some(e=>e?.field===`banned`)?t:[...t,{field:`banned`,operator:`ne`,value:!0}]}function Gt(e){let t=e.field||e.schema,n=t?.field&&typeof t.field==`object`&&(`reference`in t.field||`reference_to`in t.field||`type`in t.field),r=n?t.field:t,i={...r||{},reference:r?.reference||r?.reference_to||`sys_user`,display_field:r?.display_field||r?.displayField||r?.reference_field||`name`,picker:r?.picker??`search`,subtitle:r?.subtitle??[`primary_business_unit_id.name`,`email`],avatar_field:r?.avatar_field??r?.avatarField??`image`,lookup_filters:Wt(r?.lookup_filters??r?.lookupFilters)},a=n?{...t,field:i}:i;return(0,g.jsx)(rt,{...e,field:a})}var Kt=o((()=>{ct()})),qt=s({ObjectField:()=>Jt});function Jt({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,g.jsx)(`pre`,{className:(0,p.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,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.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||`{
|
|
6
|
+
`,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),a.current?.click())},children:[(0,g.jsx)(m.Upload,{className:`size-8 ${b?`text-primary`:`text-muted-foreground`}`}),(0,g.jsxs)(`div`,{className:`text-center`,children:[(0,g.jsx)(`p`,{className:`text-sm font-medium`,children:b?`Drop files here`:`Drag & drop files here`}),(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,y?` • use the camera button below`:``]})]})]}),y&&(0,g.jsxs)(p.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,g.jsx)(m.Camera,{className:`size-4 mr-2`}),y===`user`?`Take selfie`:`Take photo`]}),ee&&(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,g.jsx)(m.Loader2,{className:`size-3 animate-spin`}),(0,g.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,g.jsx)(`div`,{className:`space-y-0.5`,children:S.map((e,t)=>(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),O.length>0&&(0,g.jsx)(`div`,{className:`space-y-1`,children:O.map((e,t)=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[P(e)&&e.url?(0,g.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded shrink-0`}):P(e)?(0,g.jsx)(m.ImageIcon,{className:`size-4 text-muted-foreground shrink-0`}):(0,g.jsx)(m.File,{className:`size-4 text-muted-foreground shrink-0`}),(0,g.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),N(t)},className:`h-6 w-6 p-0`,children:(0,g.jsx)(m.X,{className:`size-3`})})]},t))})]})]})}var Dt=o((()=>{})),Ot=s({ImageCropperDialog:()=>kt}),kt,At=o((()=>{kt=({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,f]=(0,u.useState)({x:0,y:0,width:100,height:100}),[h,_]=(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;f({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(!h||!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-h.ox,i=(e.clientY-t.top)*n-h.oy,a=Math.max(0,Math.min(h.cx+r,s.current.naturalWidth-d.width)),c=Math.max(0,Math.min(h.cy+i,s.current.naturalHeight-d.height));f(e=>({...e,x:a,y:c}))},[h,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,g.jsx)(p.Dialog,{open:e,onOpenChange:t,children:(0,g.jsxs)(p.DialogContent,{className:`max-w-xl`,children:[(0,g.jsxs)(p.DialogHeader,{children:[(0,g.jsx)(p.DialogTitle,{children:`Crop & rotate image`}),(0,g.jsx)(p.DialogDescription,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[v?(0,g.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,g.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,g.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,g.jsxs)(`span`,{children:[`Crop: `,Math.round(d.width),` × `,Math.round(d.height),` px`]}),(0,g.jsxs)(`span`,{children:[`Rotation: `,c,`°`]})]})]}),(0,g.jsxs)(p.DialogFooter,{className:`flex justify-between sm:justify-between`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,onClick:C,"data-testid":`image-cropper-rotate`,children:[(0,g.jsx)(m.RotateCw,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,g.jsxs)(`div`,{className:`flex gap-2`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,g.jsxs)(p.Button,{type:`button`,onClick:w,disabled:!v,"data-testid":`image-cropper-confirm`,children:[(0,g.jsx)(m.Crop,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})}})),jt=s({ImageField:()=>Mt});function Mt({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,f]=(0,u.useState)(null),{upload:h}=(0,_.useUpload)(),[v,y]=(0,u.useState)(!1);if(r)return e?(0,g.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,g.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,g.jsx)(p.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 h(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 h(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),f(null)}}},[d,b,s,t,h]),w=(0,u.useCallback)(e=>{let t=b[e];t?.url&&f({index:e,src:t.url,name:t.name||`image-${e}.png`})},[b]);return(0,g.jsxs)(`div`,{className:i.className,children:[(0,g.jsx)(`input`,{ref:a,type:`file`,multiple:s,accept:c,onChange:x,className:`hidden`}),(0,g.jsxs)(`div`,{className:`space-y-2`,children:[b.length>0&&(0,g.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:b.map((e,t)=>(0,g.jsxs)(`div`,{className:`relative group`,children:[(0,g.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,g.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[l&&(0,g.jsx)(p.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,g.jsx)(m.Crop,{className:`size-3`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>S(t),className:`h-6 w-6 p-0`,children:(0,g.jsx)(m.X,{className:`size-3`})})]})]},t))}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,onClick:()=>a.current?.click(),className:`w-full`,disabled:v,"data-testid":`image-field-upload-button`,children:[v?(0,g.jsx)(m.Loader2,{className:`size-4 mr-2 animate-spin`}):(0,g.jsx)(m.Image,{className:`size-4 mr-2`}),v?`Uploading…`:b.length>0?`Add More Images`:`Upload Image`]})]}),l&&d&&(0,g.jsx)(u.Suspense,{fallback:null,children:(0,g.jsx)(Nt,{open:!0,onOpenChange:e=>!e&&f(null),src:d.src,outputName:d.name,onConfirm:C})})]})}var Nt,Pt=o((()=>{Nt=(0,u.lazy)(()=>Promise.resolve().then(()=>(At(),Ot)).then(e=>({default:e.ImageCropperDialog})))})),Ft=s({LocationField:()=>It});function It({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,g.jsx)(`span`,{className:`text-sm`,children:o||(0,g.jsx)(p.EmptyValue,{})}):(0,g.jsx)(p.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 Lt=o((()=>{})),Rt=s({FormulaField:()=>zt});function zt({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,g.jsx)(p.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,g.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var Bt=o((()=>{})),Vt=s({SummaryField:()=>Ht});function Ht({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,g.jsx)(p.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,g.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var Ut=o((()=>{})),Wt=s({AutoNumberField:()=>Gt});function Gt({value:e,field:t,...n}){return e==null?(0,g.jsx)(p.EmptyValue,{className:n.className}):(0,g.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var Kt=o((()=>{})),qt=s({UserField:()=>Yt});function Jt(e){let t=Array.isArray(e)?e:[];return t.some(e=>e?.field===`banned`)?t:[...t,{field:`banned`,operator:`ne`,value:!0}]}function Yt(e){let t=e.field||e.schema,n=t?.field&&typeof t.field==`object`&&(`reference`in t.field||`reference_to`in t.field||`type`in t.field),r=n?t.field:t,i={...r||{},reference:r?.reference||r?.reference_to||`sys_user`,display_field:r?.display_field||r?.displayField||r?.reference_field||`name`,picker:r?.picker??`search`,subtitle:r?.subtitle??[`primary_business_unit_id.name`,`email`],avatar_field:r?.avatar_field??r?.avatarField??`image`,lookup_filters:Jt(r?.lookup_filters??r?.lookupFilters)},a=n?{...t,field:i}:i;return(0,g.jsx)(rt,{...e,field:a})}var Xt=o((()=>{})),Zt=s({ObjectField:()=>Qt});function Qt({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,g.jsx)(`pre`,{className:(0,p.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,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`div`,{className:`space-y-1`,children:[(0,g.jsx)(p.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||i.disabled,className:(0,p.cn)(`font-mono text-xs`,c?`border-red-500 focus-visible:ring-red-500`:``,i.className),rows:6}),c&&(0,g.jsx)(`p`,{className:`text-xs text-red-500`,children:c})]})}var
|
|
9
|
-
`){n++;continue}if(r>=`0`&&r<=`9`||r===`.`){let r=n+1;for(;r<e.length&&(e[r]>=`0`&&e[r]<=`9`||e[r]===`.`);)r++;t.push({t:`num`,v:e.slice(n,r)}),n=r;continue}if(/[a-zA-Z_]/.test(r)){let r=n+1;for(;r<e.length&&/[a-zA-Z0-9_.]/.test(e[r]);)r++;t.push({t:`id`,v:e.slice(n,r)}),n=r;continue}if(r===`+`||r===`-`||r===`*`||r===`/`||r===`%`){t.push({t:`op`,v:r}),n++;continue}if(r===`(`){t.push({t:`lp`,v:r}),n++;continue}if(r===`)`){t.push({t:`rp`,v:r}),n++;continue}return null}return t}function nn(e,t){let n=e.startsWith(`record.`)?e.slice(7):e,r=t?.[n];if(r==null||r===``)return null;let i=Number(r);return Number.isFinite(i)?i:null}function rn(e,t){let n=tn(e);if(!n||n.length===0)return null;let r=0,i=!1,a=()=>n[r],o=()=>n[r++];function s(){let e=a();if(!e)return i=!0,NaN;if(e.t===`op`&&e.v===`-`)return o(),-s();if(e.t===`op`&&e.v===`+`)return o(),s();if(e.t===`num`)return o(),Number(e.v);if(e.t===`id`){o();let n=nn(e.v,t);return n===null?(i=!0,NaN):n}if(e.t===`lp`){o();let e=l(),t=o();return(!t||t.t!==`rp`)&&(i=!0),e}return i=!0,NaN}function c(){let e=s();for(;a()&&a().t===`op`&&(a().v===`*`||a().v===`/`||a().v===`%`);){let t=o().v,n=s();e=t===`*`?e*n:t===`/`?e/n:e%n}return e}function l(){let e=c();for(;a()&&a().t===`op`&&(a().v===`+`||a().v===`-`);){let t=o().v,n=c();e=t===`+`?e+n:e-n}return e}let u=l();return i||r!==n.length||!Number.isFinite(u)?null:u}function an(e,t,n){let r={[t.field]:n?.value??n?.id??n?._id};if(t.autofill!==!1&&n&&typeof n==`object`)for(let i of e){if(i.field===t.field||i.computed||i.type===`lookup`)continue;let e=n[i.field];e!=null&&e!==``&&(r[i.field]=e)}return r}function on(e,t){let n=e.filter(e=>e.computed&&e.expr);if(n.length===0)return t;let r={...t};for(let e of n){let t=rn(e.expr,r);if(t===null){r[e.field]=null;continue}let n=e.scale??(e.type===`currency`?2:void 0);r[e.field]=n==null?t:Number(t.toFixed(n))}return r}function sn(e,t){if(t==null||t===``)return`—`;if(e.type===`select`&&Array.isArray(e.options)){let n=e.options.find(e=>String(e.value)===String(t));return n?n.label:String(t)}if(dn(e.type)){let n=Number(t);if(Number.isFinite(n))return e.type===`currency`?`${e.prefix||`¥`}${n.toLocaleString()}`:n.toLocaleString()}return Array.isArray(t)?t.join(`, `):String(t)}function cn(e,t){if(dn(e)){if(t===``||t==null)return null;let e=Number(t);return Number.isNaN(e)?t:e}return t}function ln(e,t){return Array.isArray(e)?e.reduce((e,n)=>{let r=Number(n?.[t]);return e+(Number.isFinite(r)?r:0)},0):0}function un({value:e,onChange:t,field:n,readonly:r,disabled:i,className:a,onRowExpand:o,displayMode:s,onAdd:c,...l}){let f=n||l.schema||{},h=f.columns||[],_=Array.isArray(e)?e:[],v=l.contextRecord,y=(0,u.useCallback)((e,t)=>{if(!e.readonlyWhen&&!e.requiredWhen)return{readonly:!1,required:!!e.required};let n=(0,d.resolveFieldRuleState)({readonlyWhen:e.readonlyWhen,requiredWhen:e.requiredWhen},t||{},{required:!!e.required,readonly:!1},void 0,v?{parent:v}:void 0);return{readonly:n.readonly,required:n.required}},[v]),b=s===`list`&&!r,[x,S]=u.default.useState(()=>new Set),C=h.filter(e=>e.defaultHidden&&!e.required),w=h.filter(e=>!e.defaultHidden||e.required||x.has(e.field)),T=(0,u.useCallback)(e=>{S(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),E=f.allow_add!==!1&&!r&&!i,ee=f.allow_delete!==!1&&!r&&!i,D=f.allow_duplicate!==!1&&E,O=typeof o==`function`&&!r,k=f.show_line_numbers!==!1,te=f.min_rows??0,A=f.max_rows,ne=f.total_field||f.amount_field||f.amountField,j=f.sort_field,M=f.reorderable!==!1&&!r&&!i,N=(0,u.useCallback)(e=>{t?.(j?e.map((e,t)=>({...e,[j]:t})):e)},[t,j]),re=(0,u.useCallback)(()=>{let e={};for(let t of w)e[t.field]=null;return e},[w]),P=(0,u.useCallback)((e,t)=>{if(e>=_.length){if(A!=null&&_.length>=A)return;N([..._,on(w,{...re(),...t})]);return}N(_.map((n,r)=>r===e?on(w,{...n,...t}):n))},[_,w,A,re,N]),F=(0,u.useCallback)((e,t,n)=>P(e,{[t]:n}),[P]),ie=(0,u.useCallback)((e,t,n)=>{P(e,an(w,t,n))},[w,P]),I=(0,u.useCallback)((e,t,n)=>F(e,t,n),[F]),L=(0,u.useCallback)((e,t,n)=>{F(e,t.field,cn(t.type,n))},[F]),R=(0,u.useCallback)(()=>{A!=null&&_.length>=A||N([..._,re()])},[_,re,A,N]),z=(0,u.useRef)(null),B=(0,u.useCallback)((e,t)=>{let n=z.current?.querySelector(`[data-cell="${e}-${t}"]`);n&&(n.focus(),n instanceof HTMLInputElement&&n.select())},[]),V=(0,u.useCallback)((e,t,n)=>{e.key===`ArrowDown`||e.key===`Enter`?(e.preventDefault(),B(t+1,n)):e.key===`ArrowUp`&&(e.preventDefault(),t>0&&B(t-1,n))},[B]),H=(0,u.useCallback)(e=>{_.length<=te||N(_.filter((t,n)=>n!==e))},[_,te,N]),U=(0,u.useCallback)(e=>{if(A!=null&&_.length>=A)return;let t=_[e];if(!t)return;let{id:n,_id:r,recordId:i,...a}=t,o=[..._];o.splice(e+1,0,{...a}),N(o)},[_,A,N]),W=(0,u.useCallback)((e,t)=>{if(e===t||e<0||t<0||e>=_.length||t>=_.length)return;let n=[..._],[r]=n.splice(e,1);n.splice(t,0,r),N(n)},[_,N]),G=(0,u.useRef)(null),K=O||ee||D,ae=(+!!O+ +!!D+ +!!ee)*34+12,q=!!ne,oe=q?ln(_,ne):0,se=q?Math.max(0,w.findIndex(e=>e.field===ne)):-1,J=C.length>0?(0,g.jsxs)(p.Popover,{children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs text-muted-foreground`,"data-testid":`line-items-columns`,children:[(0,g.jsx)(m.SlidersHorizontal,{className:`h-3.5 w-3.5`}),`Columns`,x.size>0&&(0,g.jsxs)(`span`,{className:`rounded-full bg-primary/10 px-1.5 text-[10px] font-medium text-primary`,children:[`+`,x.size]})]})}),(0,g.jsxs)(p.PopoverContent,{align:`end`,className:`w-56 p-2`,children:[(0,g.jsx)(`div`,{className:`px-1 pb-1.5 text-xs font-medium text-muted-foreground`,children:`Optional columns`}),(0,g.jsx)(`div`,{className:`max-h-64 space-y-0.5 overflow-y-auto`,children:C.map(e=>{let t=`col-toggle-${e.field}`;return(0,g.jsxs)(p.Label,{htmlFor:t,className:`flex cursor-pointer items-center gap-2 rounded-md px-1.5 py-1.5 text-sm font-normal hover:bg-muted`,children:[(0,g.jsx)(p.Checkbox,{id:t,checked:x.has(e.field),onCheckedChange:()=>T(e.field)}),(0,g.jsx)(`span`,{className:`truncate`,children:e.label||e.field})]},e.field)})})]})]}):null;if(r)return(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,a),children:[J&&(0,g.jsx)(`div`,{className:`flex justify-end`,children:J}),(0,g.jsx)(`div`,{className:`border border-border rounded-lg overflow-x-auto`,"data-testid":`line-items-readonly`,children:(0,g.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,g.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`th`,{className:`w-10 px-2 py-2 text-right text-xs font-medium text-muted-foreground`,children:`#`}),w.map(e=>(0,g.jsx)(`th`,{style:{minWidth:pn(e)},className:(0,p.cn)(`px-3 py-2 text-xs font-medium text-muted-foreground whitespace-nowrap`,dn(e.type)?`text-right`:`text-left`),children:e.label||e.field},e.field))]})}),(0,g.jsx)(`tbody`,{className:`divide-y divide-border`,children:_.length===0?(0,g.jsx)(`tr`,{children:(0,g.jsx)(`td`,{colSpan:Math.max(w.length+ +!!k,1),className:`px-3 py-6 text-center text-muted-foreground`,children:`No items`})}):_.map((e,t)=>(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`td`,{className:`px-2 py-2 text-right text-muted-foreground tabular-nums`,children:t+1}),w.map(t=>(0,g.jsx)(`td`,{className:(0,p.cn)(`px-3 py-2 text-foreground`,dn(t.type)&&`text-right tabular-nums`),children:t.type===`lookup`&&e[t.field]!=null&&e[t.field]!==``?(0,g.jsx)(rt,{value:e[t.field],onChange:()=>{},readonly:!0,field:{reference:t.reference,display_field:t.displayField,id_field:t.idField}}):e[t.field]!=null&&e[t.field]!==``?String(e[t.field]):`—`},t.field))]},t))}),q&&(0,g.jsx)(`tfoot`,{className:`border-t border-border bg-muted/40`,children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{colSpan:Math.max(+!!k+se,1),className:`px-3 py-2 text-right text-xs font-medium text-muted-foreground`,children:`Total`}),(0,g.jsx)(`td`,{className:`px-3 py-2 text-right font-semibold text-foreground tabular-nums`,children:oe.toLocaleString()}),w.length-se-1>0&&(0,g.jsx)(`td`,{colSpan:w.length-se-1})]})})]})})]});let ce=!b&&E&&(A==null||_.length<A),Y=ce?[..._,re()]:_,X=(e,t,n,r)=>{let a=r?.[e.field],o=i||y(e,r).readonly;return b?e.type===`lookup`&&a!=null&&a!==``?(0,g.jsx)(rt,{value:a,onChange:()=>{},readonly:!0,field:{reference:e.reference,display_field:e.displayField,id_field:e.idField}}):(0,g.jsx)(`span`,{className:(0,p.cn)(`px-2 text-sm text-foreground`,dn(e.type)&&`tabular-nums`,(a==null||a===``)&&`text-muted-foreground`),children:sn(e,a)}):e.computed?(0,g.jsx)(`span`,{className:(0,p.cn)(`block px-2 text-sm tabular-nums`,dn(e.type)?`text-right`:`text-left`,a==null||a===``?`text-muted-foreground`:`text-foreground`),title:`Computed`,"data-computed":e.field,children:sn(e,a)}):e.type===`lookup`?(0,g.jsx)(rt,{value:a,onChange:t=>I(n,e.field,t),onSelectRecord:t=>ie(n,e,t),compact:!0,field:{reference:e.reference,display_field:e.displayField,id_field:e.idField,multiple:e.multiple,options:e.options,placeholder:`—`},disabled:o}):e.type===`select`?(0,g.jsxs)(p.Select,{value:a==null?``:String(a),onValueChange:t=>L(n,e,t),disabled:o,children:[(0,g.jsx)(p.SelectTrigger,{className:`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus:ring-1 focus:ring-ring/60`,"aria-label":e.label||e.field,children:(0,g.jsx)(p.SelectValue,{placeholder:`—`})}),(0,g.jsx)(p.SelectContent,{children:(e.options||[]).map(e=>(0,g.jsx)(p.SelectItem,{value:e.value,children:e.label},e.value))})]}):(0,g.jsxs)(`div`,{className:`relative`,children:[e.type===`currency`&&(0,g.jsx)(`span`,{className:`pointer-events-none absolute left-2 top-1/2 -translate-y-1/2 text-xs text-muted-foreground`,children:e.prefix||`¥`}),(0,g.jsx)(p.Input,{"data-cell":`${n}-${t}`,onKeyDown:e=>V(e,n,t),className:(0,p.cn)(`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus-visible:ring-1 focus-visible:ring-ring/60`,e.type===`currency`&&`pl-6`,dn(e.type)&&`text-right tabular-nums`),type:e.type===`date`?`date`:dn(e.type)?`number`:`text`,step:dn(e.type)?e.step??`any`:void 0,"aria-label":e.label||e.field,value:a==null?``:String(a),onChange:t=>L(n,e,t.target.value),disabled:o})]})};return(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,a),"data-testid":`line-items`,children:[J&&(0,g.jsx)(`div`,{className:`flex justify-end`,children:J}),(0,g.jsx)(`div`,{className:`border border-border rounded-lg overflow-x-auto`,children:(0,g.jsxs)(`table`,{ref:z,className:`w-full text-sm`,children:[(0,g.jsx)(`thead`,{className:`bg-muted/60 border-b border-border`,children:(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`th`,{className:(0,p.cn)(`px-2 py-2 text-right text-xs font-medium text-muted-foreground`,M?`w-14`:`w-10`),children:`#`}),w.map(e=>(0,g.jsxs)(`th`,{className:(0,p.cn)(`px-2 py-2 text-xs font-medium text-muted-foreground whitespace-nowrap`,dn(e.type)?`text-right`:`text-left`),style:en(e),children:[e.label||e.field,e.required&&!e.computed&&(0,g.jsx)(`span`,{className:`text-destructive`,children:` *`})]},e.field)),K&&(0,g.jsx)(`th`,{style:{width:ae}})]})}),(0,g.jsx)(`tbody`,{className:`divide-y divide-border`,children:b&&_.length===0?(0,g.jsx)(`tr`,{children:(0,g.jsxs)(`td`,{colSpan:w.length+ +!!K+ +!!k,className:`px-3 py-6 text-center text-muted-foreground`,children:[`No items yet — click “`,f.add_label||`Add`,`” to begin.`]})}):Y.map((e,t)=>{let n=ce&&t===_.length,r=M&&!n&&!b;return(0,g.jsxs)(`tr`,{className:(0,p.cn)(`group`,!n&&`hover:bg-muted/30`),...M&&!n?{onDragOver:e=>{G.current!=null&&e.preventDefault()},onDrop:e=>{e.preventDefault(),G.current!=null&&(W(G.current,t),G.current=null)}}:{},children:[k&&(0,g.jsx)(`td`,{className:`px-1 py-1 text-right align-middle text-xs text-muted-foreground tabular-nums`,children:(0,g.jsxs)(`span`,{className:`inline-flex items-center justify-end gap-0.5`,children:[r&&(0,g.jsx)(`span`,{draggable:!0,onDragStart:()=>{G.current=t},onDragEnd:()=>{G.current=null},className:`cursor-grab text-muted-foreground/40 opacity-0 transition-opacity group-hover:opacity-100`,title:`Drag to reorder`,"aria-label":`Drag to reorder`,"data-testid":`line-items-drag-${t}`,children:(0,g.jsx)(m.GripVertical,{className:`h-3.5 w-3.5`})}),(0,g.jsx)(`span`,{className:(0,p.cn)(n&&`opacity-30`),children:t+1})]})}),w.map((r,i)=>{let a=y(r,e).required,o=!n&&!b&&a&&!r.computed&&(e[r.field]==null||e[r.field]===``);return(0,g.jsx)(`td`,{"aria-invalid":o||void 0,title:o?`${r.label||r.field} is required`:void 0,"data-testid":o?`line-items-invalid-${t}-${r.field}`:void 0,className:(0,p.cn)(`border-r border-border/40 px-1 py-0.5 align-middle last:border-r-0`,b&&`px-2 py-1.5`,o&&`bg-destructive/5 ring-1 ring-inset ring-destructive/50`),children:X(r,i,t,e)},r.field)}),K&&(0,g.jsx)(`td`,{className:`px-1 py-0.5 align-middle whitespace-nowrap`,children:(0,g.jsxs)(`div`,{className:`flex items-center justify-center gap-0.5`,children:[!n&&O&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-foreground`,"aria-label":`Open row`,title:`Open full form`,"data-testid":`line-items-expand-${t}`,onClick:()=>o(t),children:(0,g.jsx)(m.Maximize2,{className:`h-3.5 w-3.5`})}),!n&&D&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-foreground`,"aria-label":`Duplicate row`,title:`Duplicate line`,"data-testid":`line-items-duplicate-${t}`,onClick:()=>U(t),disabled:i||A!=null&&_.length>=A,children:(0,g.jsx)(m.Copy,{className:`h-3.5 w-3.5`})}),!n&&ee&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-destructive`,"aria-label":`Remove row`,"data-testid":`line-items-remove-${t}`,onClick:()=>H(t),disabled:i||_.length<=te,children:(0,g.jsx)(m.Trash2,{className:`h-4 w-4`})})]})})]},t)})}),q&&(0,g.jsx)(`tfoot`,{className:`border-t border-border bg-muted/40`,children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{colSpan:Math.max(+!!k+se,1),className:`px-3 py-2 text-right text-xs font-medium text-muted-foreground`,children:`Total`}),(0,g.jsx)(`td`,{className:`px-3 py-2 text-right font-semibold text-foreground tabular-nums`,"data-testid":`line-items-total`,children:oe.toLocaleString()}),w.length-se-1+ +!!K>0&&(0,g.jsx)(`td`,{colSpan:w.length-se-1+ +!!K})]})})]})}),E&&(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:b&&c?c:R,disabled:A!=null&&_.length>=A,"data-testid":`line-items-add`,children:[(0,g.jsx)(m.Plus,{className:`mr-1.5 h-4 w-4`}),f.add_label||`Add line`]})]})}var dn,fn,pn,mn,hn=o((()=>{ct(),dn=e=>e===`number`||e===`currency`,fn={text:160,select:132,lookup:168,number:104,currency:116,date:150},pn=e=>e.width??fn[e.type??`text`]??132,mn=un})),gn=s({ColorField:()=>_n});function _n({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.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,g.jsx)(p.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 vn=o((()=>{})),yn=s({SliderField:()=>bn});function bn({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,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`span`,{className:`text-sm font-medium`,children:e??o}),(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,s]})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,g.jsx)(p.Slider,{value:[e??o],onValueChange:e=>t(e[0]),min:o,max:s,step:c,disabled:r||i.disabled,className:i.className}),(0,g.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??o})]})}var xn=o((()=>{})),Sn=s({RatingField:()=>Cn});function Cn({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,g.jsxs)(`div`,{className:(0,p.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,t)=>(0,g.jsx)(m.Star,{className:`w-5 h-5 ${t<s?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,g.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]}):(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,n)=>(0,g.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,g.jsx)(m.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,g.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]})}var wn=o((()=>{})),Tn=s({CodeField:()=>En});function En({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.language??`javascript`;return r?(0,g.jsx)(`pre`,{className:(0,p.cn)(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,g.jsx)(`code`,{children:e||(0,g.jsx)(p.EmptyValue,{})})}):(0,g.jsx)(p.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${o} code here...`,disabled:r||i.disabled,className:(0,p.cn)(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var Dn=o((()=>{})),On=s({AvatarField:()=>kn});function kn({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(``)},f=()=>(c?.defaultName||c?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return r?(0,g.jsxs)(p.Avatar,{className:`w-16 h-16`,children:[e&&(0,g.jsx)(p.AvatarImage,{src:e,alt:c?.label}),(0,g.jsx)(p.AvatarFallback,{children:f()})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,g.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,g.jsxs)(p.Avatar,{className:`w-16 h-16`,children:[e&&(0,g.jsx)(p.AvatarImage,{src:e,alt:c?.label}),(0,g.jsx)(p.AvatarFallback,{children:f()})]}),!r&&a&&e&&(0,g.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,g.jsx)(m.X,{className:`w-3 h-3`})})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,g.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,onChange:l,className:`hidden`}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>s.current?.click(),disabled:r||i.disabled,children:[(0,g.jsx)(m.Upload,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var An=o((()=>{})),jn=s({AddressField:()=>Mn});function Mn({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,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{})}return(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,g.jsx)(p.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,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,g.jsx)(p.Input,{id:`city`,type:`text`,value:a.city||``,onChange:e=>o(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,g.jsx)(p.Input,{id:`state`,type:`text`,value:a.state||``,onChange:e=>o(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,g.jsx)(p.Input,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>o(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,g.jsx)(p.Input,{id:`country`,type:`text`,value:a.country||``,onChange:e=>o(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var Nn=o((()=>{})),Pn=s({GeolocationField:()=>Fn});function Fn({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)}`,f=()=>{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,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(m.MapPin,{className:`w-4 h-4 text-muted-foreground`}),e?(0,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{}),s.latitude&&s.longitude&&(0,g.jsx)(p.Button,{type:`button`,variant:`link`,size:`sm`,onClick:f,className:`p-0 h-auto`,children:`View on map`})]})}return(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:l,disabled:r||a,children:[(0,g.jsx)(m.Crosshair,{className:`w-4 h-4 mr-2`}),a?`Getting location...`:`Use Current Location`]}),s.latitude&&s.longitude&&(0,g.jsxs)(p.Button,{type:`button`,variant:`link`,size:`sm`,onClick:f,children:[(0,g.jsx)(m.MapPin,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,g.jsx)(p.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,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,g.jsx)(p.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,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,s.accuracy.toFixed(0),`m`]})]})}var In=o((()=>{})),Ln=s({SignatureField:()=>Rn});function Rn({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,g.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,g.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsx)(`div`,{className:`border rounded bg-white`,children:(0,g.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,g.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Sign above`:`Signature captured`}),(0,g.jsxs)(p.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,g.jsx)(m.Eraser,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var zn=o((()=>{})),Bn=s({QRCodeField:()=>Vn});function Vn({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=u.default.useState(!1),s=n||i.schema;return r?(0,g.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,g.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,g.jsx)(p.EmptyValue,{})}),e&&(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:[(0,g.jsx)(m.QrCode,{className:`w-4 h-4 mr-2`}),a?`Hide`:`Show`,` QR`]})]}):(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(p.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,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,g.jsx)(m.Copy,{className:`w-4 h-4`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:(0,g.jsx)(m.QrCode,{className:`w-4 h-4`})})]})]}),a&&e&&(0,g.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,g.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,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var Hn=o((()=>{})),Un=s({MultiSelectField:()=>Wn});function Wn({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=Array.isArray(e)?e:e==null?[]:[e];if(r)return s.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:s.map(e=>(0,g.jsx)(p.Badge,{variant:`outline`,children:o.find(t=>t.value===e)?.label||e},e))});let c=e=>{t(s.includes(e)?s.filter(t=>t!==e):[...s,e])};return(0,g.jsx)(`div`,{className:(0,p.cn)(`flex flex-wrap gap-1.5`,i),children:o.map(e=>{let t=s.includes(e.value);return(0,g.jsx)(`button`,{type:`button`,onClick:()=>c(e.value),disabled:a.disabled,"aria-pressed":t,className:(0,p.cn)(`rounded-full border px-3 py-1 text-sm transition-colors`,t?`border-primary bg-primary text-primary-foreground`:`border-input bg-background text-foreground hover:bg-accent`),children:e.label},e.value)})})}var Gn=o((()=>{})),Kn=s({RadioField:()=>qn});function qn({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=(0,u.useId)();return r?e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm`,children:o.find(t=>t.value===e)?.label||String(e)}):(0,g.jsx)(p.RadioGroup,{value:e??``,onValueChange:t,disabled:a.disabled,className:i,children:o.map(e=>{let t=`${s}-${e.value}`;return(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.RadioGroupItem,{value:e.value,id:t}),(0,g.jsx)(p.Label,{htmlFor:t,className:`font-normal`,children:e.label})]},e.value)})})}var Jn=o((()=>{})),Yn=s({CheckboxesField:()=>Xn});function Xn({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=Array.isArray(e)?e:e==null?[]:[e],c=(0,u.useId)();if(r)return s.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:s.map(e=>(0,g.jsx)(p.Badge,{variant:`outline`,children:o.find(t=>t.value===e)?.label||e},e))});let l=(e,n)=>{t(n?[...s.filter(t=>t!==e),e]:s.filter(t=>t!==e))};return(0,g.jsx)(`div`,{className:i,children:o.map(e=>{let t=`${c}-${e.value}`;return(0,g.jsxs)(`div`,{className:`flex items-center space-x-2 py-0.5`,children:[(0,g.jsx)(p.Checkbox,{id:t,checked:s.includes(e.value),onCheckedChange:t=>l(e.value,!!t),disabled:a.disabled}),(0,g.jsx)(p.Label,{htmlFor:t,className:`font-normal`,children:e.label})]},e.value)})})}var Zn=o((()=>{})),Qn=s({TagsField:()=>$n});function $n({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=Array.isArray(e)?e:e==null?[]:[e],[s,c]=u.default.useState(``);if(r)return o.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:o.map(e=>(0,g.jsx)(p.Badge,{variant:`secondary`,children:e},e))});let l=e=>{let n=e.trim();!n||o.includes(n)||(t([...o,n]),c(``))},d=e=>t(o.filter(t=>t!==e));return(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-wrap items-center gap-1.5 rounded-md border border-input bg-background p-1.5`,i),children:[o.map(e=>(0,g.jsxs)(p.Badge,{variant:`secondary`,className:`gap-1`,children:[e,(0,g.jsx)(`button`,{type:`button`,onClick:()=>d(e),className:`ml-0.5 rounded-full text-muted-foreground hover:text-foreground`,"aria-label":`Remove ${e}`,children:`×`})]},e)),(0,g.jsx)(p.Input,{value:s,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`||e.key===`,`?(e.preventDefault(),l(s)):e.key===`Backspace`&&s===``&&o.length>0&&d(o[o.length-1])},onBlur:()=>l(s),disabled:a.disabled,placeholder:o.length===0?`输入后回车添加…`:``,className:`h-7 flex-1 border-0 bg-transparent p-0 px-1 shadow-none focus-visible:ring-0 min-w-[8ch]`})]})}var er=o((()=>{}));le(),bt(),Ct(),At(),It(),zt(),Ht(),Yt(),Qt(),hn(),An(),zn(),C(),ce(),E(),oe(),_t(),xn(),wn(),O(),M(),Gn(),Jn(),Zn(),er(),ie(),dt(),mt(),R(),V(),W(),ct(),Kt(),vn(),Nn(),Nt(),In(),Dn(),Hn();var tr={text:S,textarea:J,number:T,currency:q,percent:gt,slider:bn,progress:bn,rating:Cn,boolean:D,toggle:D,select:j,status:j,multiselect:Wn,radio:qn,checkboxes:Xn,tags:$n,date:F,datetime:ut,time:pt,email:L,phone:B,url:U,lookup:rt,master_detail:rt,user:Gt,owner:Gt,color:_n,address:Mn,location:Mt,geolocation:Fn,code:En,qrcode:Vn},nr=new Set([`formula`,`summary`,`auto_number`,`file`,`image`,`avatar`,`signature`,`markdown`,`html`,`richtext`,`password`,`object`,`grid`,`vector`]),rr=new Set([`boolean`,`toggle`,`select`,`status`,`radio`,`rating`]);function ir(e){return!!e&&e in tr}var ar=new Set([`lookup`,`master_detail`,`user`,`owner`]);function or({field:e,value:t,onChange:n,readonly:r}){let i=e?.type?tr[e.type]:void 0;return i?(0,g.jsx)(i,{field:e,value:t,onChange:n,readonly:r,...e?.type&&ar.has(e.type)?{compact:!0}:{}}):null}Et();function sr({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,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,i),children:[o.length===0?(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No related records`}):o.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between p-2 border rounded hover:bg-muted/50`,children:[(0,g.jsx)(`span`,{className:`text-sm`,children:e.label}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,g.jsx)(m.ExternalLink,{className:`w-4 h-4`})})]},e.id)),(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[o.length,` `,o.length===1?`record`:`records`]})]}):(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-3`,i),children:[(0,g.jsxs)(`div`,{className:`space-y-2`,children:[o.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,g.jsx)(p.Badge,{variant:`outline`,children:e.id}),(0,g.jsx)(`span`,{className:`text-sm flex-1`,children:e.label})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,g.jsx)(m.ExternalLink,{className:`w-4 h-4`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(e.id),disabled:a.disabled,children:(0,g.jsx)(m.X,{className:`w-4 h-4`})})]})]},e.id)),o.length===0&&(0,g.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20`,children:`No related records`})]}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,className:`w-full`,onClick:c,disabled:a.disabled,children:[(0,g.jsx)(m.Plus,{className:`w-4 h-4 mr-2`}),`Add `,s?.label||`Record`]})]})}var cr=s({default:()=>lr});function lr({value:e}){return(0,g.jsx)(`div`,{className:`prose prose-sm max-w-none dark:prose-invert break-words`,children:(0,g.jsx)(v.default,{remarkPlugins:[y.default],rehypePlugins:[b.default],children:e})})}var ur=o((()=>{}));C(),E(),O(),M(),ie(),R(),V(),W(),oe(),ce(),ct(),dt(),mt(),_t(),Nt(),Kt(),vn(),xn(),wn(),Dn(),Nn(),In(),Hn(),G(),Xe(),C(),E(),O(),M(),ie(),dt(),mt(),R(),V(),W(),oe(),_t(),bt(),ce(),le(),ct(),be(),Ct(),At(),Nt(),It(),zt(),Ht(),Kt(),Yt(),Qt(),hn(),vn(),xn(),wn(),Dn(),An(),Nn(),In(),zn(),Hn(),Gn(),Jn(),Zn(),er();var dr=new Map;function fr(e,t){if(!e||typeof e!=`object`)return;if(t){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}for(let t of[`name`,`full_name`,`display_name`,`label`,`title`,`subject`,`username`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}let n=e.first_name,r=e.last_name,i=[e.salutation,n,r].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `);if(i)return i;let a=e.email;if(typeof a==`string`&&a.trim())return a.trim();let o=new Set([`id`,`_id`,`organization_id`,`created_by`,`updated_by`,`created_at`,`updated_at`,`tenant_id`]),s=[`_name`,`_title`,`_number`,`_code`,`_label`];for(let[t,n]of Object.entries(e))if(!o.has(t)&&!t.endsWith(`_id`)&&s.some(e=>t.endsWith(e))){if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}}function pr(e){if(typeof e!=`string`||!/^[A-Za-z0-9_-]{12,32}$/.test(e))return!1;let t=/[A-Z]/.test(e),n=/[a-z]/.test(e),r=/[0-9_-]/.test(e);return t&&n||t&&r||n&&r}function mr(e,t){let n=u.default.useContext(h.SchemaRendererContext)?.dataSource,[,r]=u.default.useState(0),i=!!e&&!!n&&typeof n.find==`function`&&(typeof t==`string`||typeof t==`number`)&&t!==``,a=i?`${e}:${String(t)}`:``;if(u.default.useEffect(()=>{if(!i)return;let o=dr.get(a);if(o&&o.state!==`pending`&&o.promise==null||o?.state===`pending`)return;let s=(async()=>{try{let r;if(typeof n.findOne==`function`)r=await n.findOne(e,t);else{let i=await n.find(e,{$filter:{id:t},options:{$top:1}});r=(Array.isArray(i)?i:i?.value||i?.data||[])[0]}let i=fr(r);dr.set(a,{state:`ok`,name:i})}catch{dr.set(a,{state:`err`})}r(e=>e+1)})();dr.set(a,{state:`pending`,promise:s})},[a,i,e,t,n]),!i)return;let o=dr.get(a);return o?.state===`ok`?o.name:void 0}function hr(){try{let{t:e}=(0,h.useObjectTranslation)();return(t,n)=>{let r=e(t);return!r||r===t?n:r}}catch{return(e,t)=>t}}function gr(e){if(e==null||typeof e==`number`||typeof e==`boolean`)return e;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return gr(JSON.parse(t))}catch{}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.externalId||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.externalId||t.id||t._id||`[Object]`)}return String(e)}function _r(e,t){let n=Number.isFinite(e)&&e===Math.trunc(e)?0:2;if(!t)return yr(e,n);try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}}function vr(e,t){if(!t)try{return new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,``)}catch{return String(e)}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 yr(e,t=2){try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}catch{return e.toFixed(t)}}function br(e,t=0){return`${(0,d.percentDisplayValue)(e).toFixed(t)}%`}function xr(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Sr(e,t){if(e==null||e===``)return`—`;let n=e instanceof Date?e:new Date(e);if(!(n instanceof Date)||isNaN(n.getTime()))return`—`;let r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate()),a=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()-i.getTime(),o=Math.round(a/(1e3*60*60*24));if(o===0)return`Today`;if(o===1)return`Tomorrow`;if(o===-1)return`Yesterday`;if(o<-1){let e=Math.abs(o);return e<=7?t?.dueLike?`Overdue ${e}d`:`${e}d ago`:Cr(n)}return o>1&&o<=7?`In ${o} days`:Cr(n)}function Cr(e,t,n){if(e==null||e===``)return`—`;let r=e instanceof Date?e:new Date(e);if(!(r instanceof Date)||isNaN(r.getTime()))return`—`;if(t===`short`)return`${r.toLocaleDateString(`en-US`,{month:`short`})} ${r.getDate()}, '${String(r.getFullYear()).slice(-2)}`;if(t===`relative`)return Sr(r,n);let i=r.getFullYear()===new Date().getFullYear();return r.toLocaleDateString(void 0,{year:i?void 0:`numeric`,month:`short`,day:`numeric`})}function wr(e){if(e==null||e===``)return`—`;let t=e instanceof Date?e:new Date(e);return!(t instanceof Date)||isNaN(t.getTime())?`—`:t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Tr({value:e}){let t=gr(e);return t==null||t===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`truncate`,children:String(t)})}function Er({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=gr(e),r=t,i=typeof r.scale==`number`?r.scale:void 0,a=Number(n);return(0,g.jsx)(`span`,{className:`tabular-nums`,children:isNaN(a)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:i??0,maximumFractionDigits:i??20}).format(a)})}function Dr({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=gr(e),{currency:r}=(0,f.useLocalization)(),i=(0,f.resolveFieldCurrency)(t,r),a=Number(n);return(0,g.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(a)?String(n):_r(a,i)})}var Or=/progress|completion/;function kr({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=gr(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,g.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=Or.test(t?.name?.toLowerCase()||``),o=a?i:i>-1&&i<1?i*100:i,s=a?`${i.toFixed(r)}%`:br(i,r),c=Math.max(0,Math.min(100,o));return(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted ring-1 ring-inset ring-border/60 overflow-hidden shrink-0`,role:`progressbar`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,children:(0,g.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${c}%`}})}),(0,g.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:s})]})}var Ar=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function jr({value:e,field:t}){if(e==null)return(0,g.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,g.jsx)(p.EmptyValue,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,g.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,g.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,g.jsx)(m.Check,{className:`size-3 text-white`})}):(0,g.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):Ar.has(n)&&!e?(0,g.jsxs)(p.Badge,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||xr(n),` — Off`]}):(0,g.jsx)(`div`,{className:`flex items-center justify-start`,children:(0,g.jsx)(p.Checkbox,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function Mr({value:e,field:t}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let n=gr(e),r=t,i=r.format||`relative`,a=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),o=r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(a),s=Cr(n,i,{dueLike:o}),c=n==null?null:new Date(n),l=c!==null&&!isNaN(c.getTime()),u=new Date;u.setHours(0,0,0,0);let d=o&&l&&c<u,f=l?c.toISOString():String(n);return(0,g.jsx)(`span`,{className:`tabular-nums${d?` text-red-600`:``}`,title:f,children:s})}function Nr({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=gr(e),n=t==null?null:new Date(t);if(n===null||isNaN(n.getTime()))return(0,g.jsx)(p.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,g.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,g.jsx)(`span`,{children:r}),(0,g.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var Pr={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`,contacted:`blue`,qualified:`purple`,converted:`green`,won:`green`,lost:`red`,紧急:`red`,严重:`red`,高:`orange`,中:`yellow`,普通:`blue`,低:`gray`,无:`gray`,新建:`gray`,草稿:`gray`,待处理:`yellow`,待审核:`yellow`,待联系:`yellow`,挂起:`yellow`,进行中:`blue`,处理中:`blue`,已联系:`blue`,跟进中:`blue`,已发货:`blue`,打开:`blue`,已确认:`green`,已审核:`green`,已通过:`green`,已完成:`green`,已支付:`green`,已签收:`green`,已转化:`green`,成单:`green`,赢得:`green`,已签约:`green`,已交付:`purple`,已归档:`indigo`,已关闭:`gray`,已取消:`red`,已拒绝:`red`,失败:`red`,逾期:`red`,流失:`red`,丢失:`red`},Fr={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`},Ir={gray:`bg-gray-400 dark:bg-gray-500`,red:`bg-red-500`,orange:`bg-orange-500`,yellow:`bg-yellow-500`,green:`bg-green-500`,blue:`bg-blue-500`,indigo:`bg-indigo-500`,purple:`bg-purple-500`,pink:`bg-pink-500`},Lr=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function Rr(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return Lr[Math.abs(t)%Lr.length]}function zr(e){let t=/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return;let n=t[1];n.length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n.slice(0,2),16)/255,i=parseInt(n.slice(2,4),16)/255,a=parseInt(n.slice(4,6),16)/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2;if((c===0?0:c/(1-Math.abs(2*l-1)))<.22)return`gray`;let u;return u=o===r?((i-a)/c%6+6)%6:o===i?(a-r)/c+2:(r-i)/c+4,u*=60,u>=345||u<15?`red`:u<30?`orange`:u<60?`yellow`:u<170?`green`:u<238?`blue`:u<250?`indigo`:u<295?`purple`:`pink`}function Br(e){if(e){if(Fr[e])return e;if(e.charAt(0)===`#`)return zr(e)}}function Vr(e,t){let n=Br(e);if(n&&Fr[n])return Fr[n];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let r=String(t).toLowerCase().replace(/[\s-]/g,`_`),i=Pr[r];return i&&Fr[i]?Fr[i]:Fr[Rr(r)]}function Hr(e,t){let n=Br(e);if(n&&Fr[n])return n;if(t==null||t===``)return;let r=String(t).toLowerCase().replace(/[\s-]/g,`_`);return Pr[r]||Rr(r)}var Ur={gray:`#6b7280`,red:`#ef4444`,orange:`#f97316`,yellow:`#eab308`,green:`#22c55e`,blue:`#3b82f6`,indigo:`#6366f1`,purple:`#a855f7`,pink:`#ec4899`};function Wr(e,t=`#3b82f6`){return e?Ur[e]??t:t}function Gr({value:e,field:t}){let n=t,r=n.options||[],i=n.appearance===`dot`?`dot`:`badge`;if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let a=e=>{let t=r.find(t=>t.value===e);if(t)return t;let n=String(e).toLowerCase();return r.find(e=>String(e.value).toLowerCase()===n)},o=(e,t)=>{let n=a(e),r=n?.label||xr(String(e));if(i===`dot`){let i=Br(n?.color)||Pr[String(e).toLowerCase().replace(/[\s-]/g,`_`)]||Rr(String(e).toLowerCase().replace(/[\s-]/g,`_`));return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,g.jsx)(`span`,{className:(0,p.cn)(`h-1.5 w-1.5 rounded-full shrink-0`,Ir[i]||Ir.gray),"aria-hidden":`true`}),(0,g.jsx)(`span`,{className:`truncate`,children:r})]},t)}return(0,g.jsx)(p.Badge,{variant:`outline`,className:Vr(n?.color,e),children:r},t)};return Array.isArray(e)?(0,g.jsx)(`div`,{className:(0,p.cn)(`flex flex-wrap`,i===`dot`?`gap-x-3 gap-y-1`:`gap-1`),children:e.map((e,t)=>o(e,t))}):o(e)}function Kr({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=hr(),n=String(gr(e)??``),[r,i]=u.default.useState(!1);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,g.jsx)(p.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,g.jsx)(`a`,{href:`mailto:${n}`,onClick:e=>e.stopPropagation(),children:n})}),(0,g.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(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyEmail`,`Copy email`),children:r?(0,g.jsx)(m.Check,{className:`h-3 w-3 text-green-600`}):(0,g.jsx)(m.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function qr({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=String(gr(e)??``);return(0,g.jsx)(p.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,g.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function Jr({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=hr(),n=String(gr(e)??``),[r,i]=u.default.useState(!1);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,g.jsxs)(`a`,{href:`tel:${n}`,className:`inline-flex items-center gap-1 text-blue-600 hover:text-blue-800`,onClick:e=>e.stopPropagation(),children:[(0,g.jsx)(m.Phone,{className:`h-3 w-3`}),n]}),(0,g.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(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyPhone`,`Copy phone number`),children:r?(0,g.jsx)(m.Check,{className:`h-3 w-3 text-green-600`}):(0,g.jsx)(m.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function Yr({value:e,field:t}){if(!e)return(0,g.jsx)(p.EmptyValue,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,g.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,g.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function Xr({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=e=>typeof e==`string`?e:e?.url||e?.src||e?.href||e?.thumbnailUrl||``,n=(e,t)=>e&&typeof e==`object`&&(e.name||e.original_name)||t;if(Array.isArray(e)){let r=e.map(e=>({url:t(e),name:n(e,`Image`)})).filter(e=>e.url);return r.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`div`,{className:`flex -space-x-2`,children:[r.slice(0,3).map((e,t)=>(0,g.jsx)(`img`,{src:e.url,alt:e.name||`Image ${t+1}`,className:`size-8 rounded-md border-2 border-white object-cover`},t)),r.length>3&&(0,g.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:[`+`,r.length-3]})]})}let r=t(e);return r?(0,g.jsx)(`img`,{src:r,alt:n(e,`Image`),className:`size-10 rounded-md object-cover`}):(0,g.jsx)(p.EmptyValue,{})}function Zr({value:e,field:t}){let n=t.reference_to||t.reference,r=(()=>{if(Array.isArray(e))return e.find(e=>e!=null&&(typeof e==`string`||typeof e==`number`)&&e!==``);if(e!=null&&e!==``&&(typeof e==`string`||typeof e==`number`)&&typeof e!=`object`)return e})(),i=mr(n,r);if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`))try{let e=JSON.parse(t);if(e&&typeof e==`object`){let t=fr(e)||String(e.externalId??e.id??e._id??``);if(t)return(0,g.jsx)(`span`,{className:`truncate`,children:t})}}catch{}}if(!Array.isArray(e)&&typeof e==`object`){let t=e,n=fr(t)||String(t.id||t._id||``);if(n)return(0,g.jsx)(`span`,{className:`truncate`,children:n})}let a=t.options||[],o=e=>{if(a.length>0){let t=a.find(t=>String(t.value)===String(e));if(t)return{text:t.label,muted:!1}}return e===r&&i?{text:i,muted:!1}:pr(e)?{text:`—`,muted:!0}:{text:String(e),muted:!1}};if(Array.isArray(e))return(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let n,r=!1;if(typeof e==`object`&&e)n=fr(e)||String(e.id||e._id||`[Object]`);else{let t=o(e);n=t.text,r=t.muted}return(0,g.jsx)(`span`,{className:(0,p.cn)(`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium`,r?`bg-muted/40 text-muted-foreground`:`bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`),children:n},t)})});if(typeof e==`object`&&e)return(0,g.jsx)(`span`,{className:`truncate`,children:fr(e)||String(e.id||e._id||`[Object]`)});let{text:s,muted:c}=o(e);return(0,g.jsx)(`span`,{className:(0,p.cn)(`truncate`,c&&`text-muted-foreground`),children:s})}function Qr({value:e}){let t=gr(e);return t==null||t===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function $r({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});if(typeof e!=`object`)return(0,g.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,g.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,g.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`,r=n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return(0,g.jsxs)(p.Avatar,{className:`size-8 border-2 border-white`,title:n,children:[e.image&&(0,g.jsx)(p.AvatarImage,{src:e.image,alt:n}),(0,g.jsx)(p.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:r})]},t)}),e.length>3&&(0,g.jsx)(p.Avatar,{className:`size-8 border-2 border-white`,children:(0,g.jsxs)(p.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`,n=t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsxs)(p.Avatar,{className:`size-8`,children:[e.image&&(0,g.jsx)(p.AvatarImage,{src:e.image,alt:t}),(0,g.jsx)(p.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n})]}),(0,g.jsx)(`span`,{className:`truncate`,children:t})]})}var ei=new Map;function ti(e,t){ei.set(e,t)}var ni={phone:`phone`,tel:`phone`,telephone:`phone`,email:`email`,url:`url`,uri:`url`,link:`url`,currency:`currency`,money:`currency`,percent:`percent`,percentage:`percent`},ri=new Set([`text`,`textarea`,`string`,`longtext`,``]);function ii(e){if(!e)return`text`;if(typeof e==`string`)return e;let t=(e.type||``).toLowerCase(),n=e.format,r=typeof n==`string`?n.toLowerCase():``;return r&&ni[r]&&ri.has(t)?ni[r]:e.type||`text`}function ai({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t;if(typeof e==`object`)try{t=JSON.stringify(e)}catch{t=String(e)}else t=String(e);return(0,g.jsx)(`span`,{className:`block max-w-full font-mono text-xs text-gray-600 truncate`,title:t,children:t})}function oi({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t=String(e);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,g.jsx)(`span`,{className:`h-3.5 w-3.5 rounded border border-black/10 shrink-0`,style:{backgroundColor:t},"aria-hidden":`true`}),(0,g.jsx)(`span`,{className:`font-mono text-xs`,children:t})]})}var si=u.default.lazy(()=>Promise.resolve().then(()=>(ur(),cr)));function ci({value:e}){return e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(u.default.Suspense,{fallback:(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:String(e).slice(0,80)}),children:(0,g.jsx)(si,{value:String(e)})})}function li(e){return e.replace(/<\s*(script|style|iframe|object|embed)[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/\son\w+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/(href|src)\s*=\s*("javascript:[^"]*"|'javascript:[^']*')/gi,`$1="#"`)}function ui({value:e}){return e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`prose prose-sm max-w-none dark:prose-invert break-words`,dangerouslySetInnerHTML:{__html:li(String(e))}})}function di({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t,n;if(typeof e==`object`&&!Array.isArray(e)){let r=e;t=typeof r.lat==`number`?r.lat:typeof r.latitude==`number`?r.latitude:void 0,n=typeof r.lng==`number`?r.lng:typeof r.lon==`number`?r.lon:typeof r.longitude==`number`?r.longitude:void 0}else if(Array.isArray(e)&&e.length===2)t=Number(e[0]),n=Number(e[1]);else if(typeof e==`string`){let r=e.split(`,`).map(e=>parseFloat(e.trim()));r.length===2&&!isNaN(r[0])&&!isNaN(r[1])&&([t,n]=r)}return typeof t==`number`&&typeof n==`number`&&!isNaN(t)&&!isNaN(n)?(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-sm tabular-nums`,children:[(0,g.jsx)(m.MapPin,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),t.toFixed(4),`, `,n.toFixed(4)]}):(0,g.jsx)(ai,{value:e,field:{}})}function fi(e){return ei.has(e)?ei.get(e):{text:Tr,textarea:Tr,markdown:ci,html:ui,richtext:ci,code:Tr,qrcode:Tr,number:Er,currency:Dr,percent:kr,progress:kr,slider:Er,rating:Er,boolean:jr,toggle:jr,date:Mr,datetime:Nr,time:Tr,select:Gr,status:Gr,multiselect:Gr,radio:Gr,checkboxes:Gr,tags:Gr,lookup:Zr,master_detail:Zr,tree:Zr,email:Kr,url:qr,phone:Jr,file:Yr,video:Yr,audio:Yr,image:Xr,avatar:Xr,signature:Xr,formula:Qr,summary:Qr,auto_number:Tr,user:$r,owner:$r,password:()=>(0,g.jsx)(`span`,{children:`••••••`}),secret:()=>(0,g.jsx)(`span`,{children:`••••••`}),location:di,geolocation:di,address:ai,color:oi,json:ai,object:ai,composite:ai,record:ai,repeater:({value:e})=>{let t=Array.isArray(e)?e.length:0;return t>0?(0,g.jsxs)(`span`,{className:`text-gray-500 italic`,children:[t,` 项`]}):(0,g.jsx)(p.EmptyValue,{})},vector:()=>(0,g.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,g.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||Tr}ti(`lookup`,Zr),ti(`master_detail`,Zr),ti(`select`,Gr),ti(`status`,Gr),ti(`user`,$r),ti(`owner`,$r),qe(fi);function pi(e){return{text:`field:text`,textarea:`field:textarea`,markdown:`field:markdown`,html:`field:html`,richtext:`field:richtext`,secret:`field:password`,number:`field:number`,currency:`field:currency`,percent:`field:percent`,slider:`field:slider`,progress:`field:slider`,rating:`field:rating`,date:`field:date`,datetime:`field:datetime`,time:`field:time`,boolean:`field:boolean`,toggle:`field:boolean`,select:`field:select`,multiselect:`field:multiselect`,radio:`field:radio`,checkboxes:`field:checkboxes`,tags:`field:tags`,lookup:`field:lookup`,master_detail:`field:master_detail`,tree:`field:lookup`,user:`field:user`,owner:`field:owner`,email:`field:email`,phone:`field:phone`,url:`field:url`,file:`field:file`,image:`field:image`,avatar:`field:avatar`,video:`field:file`,audio:`field:file`,signature:`field:signature`,password:`field:password`,location:`field:location`,geolocation:`field:geolocation`,address:`field:address`,color:`field:color`,code:`field:code`,json:`field:code`,qrcode:`field:qrcode`,vector:`field:vector`,object:`field:object`,composite:`field:object`,record:`field:object`,repeater:`field:grid`,formula:`field:formula`,summary:`field:summary`,auto_number:`field:auto_number`}[e]||`field:text`}function mi(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 hi(e){let t={};return e.required&&(t.required=typeof e.required_message==`string`?e.required_message:!0),e.min_length&&(t.minLength={value:e.min_length,message:typeof e.min_length_message==`string`?e.min_length_message:void 0,messageKey:`validation.minLength`}),e.max_length&&(t.maxLength={value:e.max_length,message:typeof e.max_length_message==`string`?e.max_length_message:void 0,messageKey:`validation.maxLength`}),e.min!==void 0&&(t.min={value:e.min,message:typeof e.min_message==`string`?e.min_message:void 0,messageKey:`validation.min`}),e.max!==void 0&&(t.max={value:e.max,message:typeof e.max_message==`string`?e.max_message:void 0,messageKey:`validation.max`}),e.pattern&&(t.pattern={value:typeof e.pattern==`string`?new RegExp(e.pattern):e.pattern,message:typeof e.pattern_message==`string`?e.pattern_message:void 0,messageKey:`validation.pattern`}),e.type===`email`&&(t.pattern={value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:void 0,messageKey:`validation.email`}),e.type===`url`&&(t.pattern={value:/^https?:\/\/.+/,message:void 0,messageKey:`validation.url`}),e.validate&&(t.validate=e.validate),Object.keys(t).length>0?t:void 0}function gi(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=>gi(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>gi(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,g.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,g.jsx)(`label`,{htmlFor:t.id,className:t.required?`after:content-['*'] after:ml-0.5 after:text-red-500`:``,children:t.label}),(0,g.jsx)(e,{value:a,onChange:c,field:s,readonly:l,className:n}),t?.description&&(0,g.jsx)(`p`,{className:`text-sm text-gray-500`,children:t.description})]})};return t.displayName=`FieldRenderer(${e.displayName||e.name||`Component`})`,t}var _i={text:()=>Promise.resolve().then(()=>(C(),x)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>(ce(),se)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>(E(),w)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>(O(),ee)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>(M(),ne)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>(ie(),P)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>(dt(),lt)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>(mt(),ft)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>(R(),I)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>(V(),z)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>(W(),H)).then(e=>({default:e.UrlField})),multiselect:()=>Promise.resolve().then(()=>(Gn(),Un)).then(e=>({default:e.MultiSelectField})),radio:()=>Promise.resolve().then(()=>(Jn(),Kn)).then(e=>({default:e.RadioField})),checkboxes:()=>Promise.resolve().then(()=>(Zn(),Yn)).then(e=>({default:e.CheckboxesField})),tags:()=>Promise.resolve().then(()=>(er(),Qn)).then(e=>({default:e.TagsField})),currency:()=>Promise.resolve().then(()=>(oe(),K)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>(_t(),ht)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>(bt(),vt)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),richtext:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>(ct(),Ze)).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>(ct(),Ze)).then(e=>({default:e.LookupField})),file:()=>Promise.resolve().then(()=>(Ct(),xt)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>(At(),Dt)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>(Nt(),jt)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>(It(),Pt)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>(zt(),Lt)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>(Ht(),Bt)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>(Kt(),Ut)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>(Kt(),Ut)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>(Yt(),qt)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>(Qt(),Xt)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>(hn(),$t)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>(vn(),gn)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>(xn(),yn)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>(wn(),Sn)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>(Dn(),Tn)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>(An(),On)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>(Nn(),jn)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>(In(),Pn)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>(zn(),Ln)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>(Hn(),Bn)).then(e=>({default:e.QRCodeField}))},vi=Object.freeze(Object.keys(_i)),yi=new Set([`text`,`html`,`image`,`avatar`,`grid`,`textarea`,`select`,`email`,`password`,`slider`,`markdown`,`time`,`address`]);function bi(e){let t=_i[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=u.default.lazy(t);d.ComponentRegistry.register(e,n,{namespace:`field`,skipFallback:yi.has(e)})}function xi(){Object.keys(_i).forEach(e=>{bi(e)})}function Si(){d.ComponentRegistry.register(`text`,$(S),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`textarea`,$(J),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`number`,$(T),{namespace:`field`}),d.ComponentRegistry.register(`boolean`,$(D),{namespace:`field`}),d.ComponentRegistry.register(`select`,$(j),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`date`,$(F),{namespace:`field`}),d.ComponentRegistry.register(`datetime`,$(ut),{namespace:`field`}),d.ComponentRegistry.register(`time`,$(pt),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`email`,$(L),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`phone`,$(B),{namespace:`field`}),d.ComponentRegistry.register(`url`,$(U),{namespace:`field`}),d.ComponentRegistry.register(`currency`,$(q),{namespace:`field`}),d.ComponentRegistry.register(`percent`,$(gt),{namespace:`field`}),d.ComponentRegistry.register(`password`,$(yt),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`markdown`,$(X),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`html`,$(X),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`lookup`,$(rt),{namespace:`field`}),d.ComponentRegistry.register(`master_detail`,$(rt),{namespace:`field`}),d.ComponentRegistry.register(`file`,$(St),{namespace:`field`}),d.ComponentRegistry.register(`image`,$(Ot),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`location`,$(Mt),{namespace:`field`}),d.ComponentRegistry.register(`formula`,$(Ft),{namespace:`field`}),d.ComponentRegistry.register(`summary`,$(Rt),{namespace:`field`}),d.ComponentRegistry.register(`auto_number`,$(Vt),{namespace:`field`}),d.ComponentRegistry.register(`user`,$(Gt),{namespace:`field`}),d.ComponentRegistry.register(`owner`,$(Gt),{namespace:`field`}),d.ComponentRegistry.register(`object`,$(Jt),{namespace:`field`}),d.ComponentRegistry.register(`vector`,$(Zt),{namespace:`field`}),d.ComponentRegistry.register(`grid`,$(un),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`color`,$(_n),{namespace:`field`}),d.ComponentRegistry.register(`slider`,$(bn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`rating`,$(Cn),{namespace:`field`}),d.ComponentRegistry.register(`code`,$(En),{namespace:`field`}),d.ComponentRegistry.register(`avatar`,$(kn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`address`,$(Mn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`geolocation`,$(Fn),{namespace:`field`}),d.ComponentRegistry.register(`signature`,$(Rn),{namespace:`field`}),d.ComponentRegistry.register(`qrcode`,$(Vn),{namespace:`field`})}xi(),exports.AddressField=Mn,exports.AutoNumberField=Vt,exports.AvatarField=kn,exports.BooleanCellRenderer=jr,exports.BooleanField=D,exports.CheckboxesField=Xn,exports.CodeField=En,exports.ColorField=_n,exports.ColorSwatchCellRenderer=oi,exports.CurrencyCellRenderer=Dr,exports.CurrencyField=q,exports.DISCRETE_EDIT_TYPES=rr,exports.DateCellRenderer=Mr,exports.DateField=F,exports.DateTimeCellRenderer=Nr,exports.DateTimeField=ut,exports.EmailCellRenderer=Kr,exports.EmailField=L,exports.FORM_FIELD_TYPES=vi,exports.FieldEditWidget=or,exports.FileCellRenderer=Yr,exports.FileField=St,exports.FormulaCellRenderer=Qr,exports.FormulaField=Ft,exports.GeolocationField=Fn,exports.GridField=un,exports.HtmlCellRenderer=ui,exports.INLINE_EXCLUDED_FIELD_TYPES=nr,exports.ImageCellRenderer=Xr,exports.ImageCropperDialog=Tt,exports.ImageField=Ot,exports.JsonCellRenderer=ai,exports.LineItemsField=mn,exports.LocationCellRenderer=di,exports.LocationField=Mt,exports.LookupCellRenderer=Zr,exports.LookupField=rt,exports.MarkdownCellRenderer=ci,exports.MasterDetailField=sr,exports.MultiSelectField=Wn,exports.NumberCellRenderer=Er,exports.NumberField=T,exports.ObjectField=Jt,exports.PasswordField=yt,exports.PercentCellRenderer=kr,exports.PercentField=gt,exports.PhoneCellRenderer=Jr,exports.PhoneField=B,exports.QRCodeField=Vn,exports.RadioField=qn,exports.RatingField=Cn,exports.RecordPickerDialog=ge,exports.RichTextField=X,exports.SelectCellRenderer=Gr,exports.SelectField=j,exports.SignatureField=Rn,exports.SliderField=bn,exports.SummaryField=Rt,exports.TagsField=$n,exports.TextAreaField=J,exports.TextCellRenderer=Tr,exports.TextField=S,exports.TimeField=pt,exports.UrlCellRenderer=qr,exports.UrlField=U,exports.UserCellRenderer=$r,exports.UserField=Gt,exports.VectorField=Zt,exports.buildValidationRules=hi,exports.coerceToSafeValue=gr,exports.computeRow=on,exports.evalArith=rn,exports.evaluateCondition=gi,exports.formatCompactCurrency=vr,exports.formatCurrency=_r,exports.formatDate=Cr,exports.formatDateTime=wr,exports.formatFileSize=mi,exports.formatNumber=yr,exports.formatPercent=br,exports.formatRelativeDate=Sr,exports.getBadgeColorClasses=Vr,exports.getCellRenderer=fi,exports.getSemanticColorName=Hr,exports.getSemanticHex=Wr,exports.hasFieldEditWidget=ir,exports.humanizeLabel=xr,exports.isLikelyOpaqueId=pr,exports.lookupAutofillPatch=an,exports.lookupFiltersToRecord=me,exports.mapFieldTypeToFormType=pi,exports.pickRecordDisplayName=fr,exports.registerAllFields=xi,exports.registerField=bi,exports.registerFieldRenderer=ti,exports.registerFields=Si,exports.resolveCellRendererType=ii,Object.defineProperty(exports,"resolveFieldCurrency",{enumerable:!0,get:function(){return f.resolveFieldCurrency}}),exports.sumColumn=ln;
|
|
8
|
+
}`,disabled:r||i.disabled,className:(0,p.cn)(`font-mono text-xs`,c?`border-red-500 focus-visible:ring-red-500`:``,i.className),rows:6}),c&&(0,g.jsx)(`p`,{className:`text-xs text-red-500`,children:c})]})}var $t=o((()=>{})),en=s({VectorField:()=>tn});function tn({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,g.jsx)(p.EmptyValue,{});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,g.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,g.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,g.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}var nn=o((()=>{})),rn=s({GridField:()=>mn,LineItemsField:()=>vn,computeRow:()=>un,evalArith:()=>cn,lookupAutofillPatch:()=>ln,sumColumn:()=>pn});function an(e){if(e.width)return{width:e.width,minWidth:e.width};if((e.type??`text`)===`text`)return{minWidth:180};let t=gn[e.type??`text`]??132;return{width:t,minWidth:t}}function on(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===` `||r===` `||r===`
|
|
9
|
+
`){n++;continue}if(r>=`0`&&r<=`9`||r===`.`){let r=n+1;for(;r<e.length&&(e[r]>=`0`&&e[r]<=`9`||e[r]===`.`);)r++;t.push({t:`num`,v:e.slice(n,r)}),n=r;continue}if(/[a-zA-Z_]/.test(r)){let r=n+1;for(;r<e.length&&/[a-zA-Z0-9_.]/.test(e[r]);)r++;t.push({t:`id`,v:e.slice(n,r)}),n=r;continue}if(r===`+`||r===`-`||r===`*`||r===`/`||r===`%`){t.push({t:`op`,v:r}),n++;continue}if(r===`(`){t.push({t:`lp`,v:r}),n++;continue}if(r===`)`){t.push({t:`rp`,v:r}),n++;continue}return null}return t}function sn(e,t){let n=e.startsWith(`record.`)?e.slice(7):e,r=t?.[n];if(r==null||r===``)return null;let i=Number(r);return Number.isFinite(i)?i:null}function cn(e,t){let n=on(e);if(!n||n.length===0)return null;let r=0,i=!1,a=()=>n[r],o=()=>n[r++];function s(){let e=a();if(!e)return i=!0,NaN;if(e.t===`op`&&e.v===`-`)return o(),-s();if(e.t===`op`&&e.v===`+`)return o(),s();if(e.t===`num`)return o(),Number(e.v);if(e.t===`id`){o();let n=sn(e.v,t);return n===null?(i=!0,NaN):n}if(e.t===`lp`){o();let e=l(),t=o();return(!t||t.t!==`rp`)&&(i=!0),e}return i=!0,NaN}function c(){let e=s();for(;a()&&a().t===`op`&&(a().v===`*`||a().v===`/`||a().v===`%`);){let t=o().v,n=s();e=t===`*`?e*n:t===`/`?e/n:e%n}return e}function l(){let e=c();for(;a()&&a().t===`op`&&(a().v===`+`||a().v===`-`);){let t=o().v,n=c();e=t===`+`?e+n:e-n}return e}let u=l();return i||r!==n.length||!Number.isFinite(u)?null:u}function ln(e,t,n){let r={[t.field]:n?.value??n?.id??n?._id};if(t.autofill!==!1&&n&&typeof n==`object`)for(let i of e){if(i.field===t.field||i.computed||i.type===`lookup`)continue;let e=n[i.field];e!=null&&e!==``&&(r[i.field]=e)}return r}function un(e,t){let n=e.filter(e=>e.computed&&e.expr);if(n.length===0)return t;let r={...t};for(let e of n){let t=cn(e.expr,r);if(t===null){r[e.field]=null;continue}let n=e.scale??(e.type===`currency`?2:void 0);r[e.field]=n==null?t:Number(t.toFixed(n))}return r}function dn(e,t){if(t==null||t===``)return`—`;if(e.type===`select`&&Array.isArray(e.options)){let n=e.options.find(e=>String(e.value)===String(t));return n?n.label:String(t)}if(hn(e.type)){let n=Number(t);if(Number.isFinite(n))return e.type===`currency`?`${e.prefix||`¥`}${n.toLocaleString()}`:n.toLocaleString()}return Array.isArray(t)?t.join(`, `):String(t)}function fn(e,t){if(hn(e)){if(t===``||t==null)return null;let e=Number(t);return Number.isNaN(e)?t:e}return t}function pn(e,t){return Array.isArray(e)?e.reduce((e,n)=>{let r=Number(n?.[t]);return e+(Number.isFinite(r)?r:0)},0):0}function mn({value:e,onChange:t,field:n,readonly:r,disabled:i,className:a,onRowExpand:o,displayMode:s,onAdd:c,...l}){let f=n||l.schema||{},h=f.columns||[],_=Array.isArray(e)?e:[],v=l.contextRecord,y=(0,u.useCallback)((e,t)=>{if(!e.readonlyWhen&&!e.requiredWhen)return{readonly:!1,required:!!e.required};let n=(0,d.resolveFieldRuleState)({readonlyWhen:e.readonlyWhen,requiredWhen:e.requiredWhen},t||{},{required:!!e.required,readonly:!1},void 0,v?{parent:v}:void 0);return{readonly:n.readonly,required:n.required}},[v]),b=s===`list`&&!r,[x,S]=u.default.useState(()=>new Set),C=h.filter(e=>e.defaultHidden&&!e.required),w=h.filter(e=>!e.defaultHidden||e.required||x.has(e.field)),T=(0,u.useCallback)(e=>{S(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),E=f.allow_add!==!1&&!r&&!i,ee=f.allow_delete!==!1&&!r&&!i,D=f.allow_duplicate!==!1&&E,O=typeof o==`function`&&!r,k=f.show_line_numbers!==!1,te=f.min_rows??0,A=f.max_rows,j=f.total_field||f.amount_field||f.amountField,M=f.sort_field,N=f.reorderable!==!1&&!r&&!i,P=(0,u.useCallback)(e=>{t?.(M?e.map((e,t)=>({...e,[M]:t})):e)},[t,M]),ne=(0,u.useCallback)(()=>{let e={};for(let t of w)e[t.field]=null;return e},[w]),F=(0,u.useCallback)((e,t)=>{if(e>=_.length){if(A!=null&&_.length>=A)return;P([..._,un(w,{...ne(),...t})]);return}P(_.map((n,r)=>r===e?un(w,{...n,...t}):n))},[_,w,A,ne,P]),I=(0,u.useCallback)((e,t,n)=>F(e,{[t]:n}),[F]),re=(0,u.useCallback)((e,t,n)=>{F(e,ln(w,t,n))},[w,F]),ie=(0,u.useCallback)((e,t,n)=>I(e,t,n),[I]),L=(0,u.useCallback)((e,t,n)=>{I(e,t.field,fn(t.type,n))},[I]),R=(0,u.useCallback)(()=>{A!=null&&_.length>=A||P([..._,ne()])},[_,ne,A,P]),z=(0,u.useRef)(null),B=(0,u.useCallback)((e,t)=>{let n=z.current?.querySelector(`[data-cell="${e}-${t}"]`);n&&(n.focus(),n instanceof HTMLInputElement&&n.select())},[]),V=(0,u.useCallback)((e,t,n)=>{e.key===`ArrowDown`||e.key===`Enter`?(e.preventDefault(),B(t+1,n)):e.key===`ArrowUp`&&(e.preventDefault(),t>0&&B(t-1,n))},[B]),H=(0,u.useCallback)(e=>{_.length<=te||P(_.filter((t,n)=>n!==e))},[_,te,P]),U=(0,u.useCallback)(e=>{if(A!=null&&_.length>=A)return;let t=_[e];if(!t)return;let{id:n,_id:r,recordId:i,...a}=t,o=[..._];o.splice(e+1,0,{...a}),P(o)},[_,A,P]),W=(0,u.useCallback)((e,t)=>{if(e===t||e<0||t<0||e>=_.length||t>=_.length)return;let n=[..._],[r]=n.splice(e,1);n.splice(t,0,r),P(n)},[_,P]),G=(0,u.useRef)(null),K=O||ee||D,ae=(+!!O+ +!!D+ +!!ee)*34+12,q=!!j,oe=q?pn(_,j):0,se=q?Math.max(0,w.findIndex(e=>e.field===j)):-1,J=C.length>0?(0,g.jsxs)(p.Popover,{children:[(0,g.jsx)(p.PopoverTrigger,{asChild:!0,children:(0,g.jsxs)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs text-muted-foreground`,"data-testid":`line-items-columns`,children:[(0,g.jsx)(m.SlidersHorizontal,{className:`h-3.5 w-3.5`}),`Columns`,x.size>0&&(0,g.jsxs)(`span`,{className:`rounded-full bg-primary/10 px-1.5 text-[10px] font-medium text-primary`,children:[`+`,x.size]})]})}),(0,g.jsxs)(p.PopoverContent,{align:`end`,className:`w-56 p-2`,children:[(0,g.jsx)(`div`,{className:`px-1 pb-1.5 text-xs font-medium text-muted-foreground`,children:`Optional columns`}),(0,g.jsx)(`div`,{className:`max-h-64 space-y-0.5 overflow-y-auto`,children:C.map(e=>{let t=`col-toggle-${e.field}`;return(0,g.jsxs)(p.Label,{htmlFor:t,className:`flex cursor-pointer items-center gap-2 rounded-md px-1.5 py-1.5 text-sm font-normal hover:bg-muted`,children:[(0,g.jsx)(p.Checkbox,{id:t,checked:x.has(e.field),onCheckedChange:()=>T(e.field)}),(0,g.jsx)(`span`,{className:`truncate`,children:e.label||e.field})]},e.field)})})]})]}):null;if(r)return(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,a),children:[J&&(0,g.jsx)(`div`,{className:`flex justify-end`,children:J}),(0,g.jsx)(`div`,{className:`border border-border rounded-lg overflow-x-auto`,"data-testid":`line-items-readonly`,children:(0,g.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,g.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`th`,{className:`w-10 px-2 py-2 text-right text-xs font-medium text-muted-foreground`,children:`#`}),w.map(e=>(0,g.jsx)(`th`,{style:{minWidth:_n(e)},className:(0,p.cn)(`px-3 py-2 text-xs font-medium text-muted-foreground whitespace-nowrap`,hn(e.type)?`text-right`:`text-left`),children:e.label||e.field},e.field))]})}),(0,g.jsx)(`tbody`,{className:`divide-y divide-border`,children:_.length===0?(0,g.jsx)(`tr`,{children:(0,g.jsx)(`td`,{colSpan:Math.max(w.length+ +!!k,1),className:`px-3 py-6 text-center text-muted-foreground`,children:`No items`})}):_.map((e,t)=>(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`td`,{className:`px-2 py-2 text-right text-muted-foreground tabular-nums`,children:t+1}),w.map(t=>(0,g.jsx)(`td`,{className:(0,p.cn)(`px-3 py-2 text-foreground`,hn(t.type)&&`text-right tabular-nums`),children:t.type===`lookup`&&e[t.field]!=null&&e[t.field]!==``?(0,g.jsx)(rt,{value:e[t.field],onChange:()=>{},readonly:!0,field:{reference:t.reference,display_field:t.displayField,id_field:t.idField}}):e[t.field]!=null&&e[t.field]!==``?String(e[t.field]):`—`},t.field))]},t))}),q&&(0,g.jsx)(`tfoot`,{className:`border-t border-border bg-muted/40`,children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{colSpan:Math.max(+!!k+se,1),className:`px-3 py-2 text-right text-xs font-medium text-muted-foreground`,children:`Total`}),(0,g.jsx)(`td`,{className:`px-3 py-2 text-right font-semibold text-foreground tabular-nums`,children:oe.toLocaleString()}),w.length-se-1>0&&(0,g.jsx)(`td`,{colSpan:w.length-se-1})]})})]})})]});let ce=!b&&E&&(A==null||_.length<A),Y=ce?[..._,ne()]:_,X=(e,t,n,r)=>{let a=r?.[e.field],o=i||y(e,r).readonly;return b?e.type===`lookup`&&a!=null&&a!==``?(0,g.jsx)(rt,{value:a,onChange:()=>{},readonly:!0,field:{reference:e.reference,display_field:e.displayField,id_field:e.idField}}):(0,g.jsx)(`span`,{className:(0,p.cn)(`px-2 text-sm text-foreground`,hn(e.type)&&`tabular-nums`,(a==null||a===``)&&`text-muted-foreground`),children:dn(e,a)}):e.computed?(0,g.jsx)(`span`,{className:(0,p.cn)(`block px-2 text-sm tabular-nums`,hn(e.type)?`text-right`:`text-left`,a==null||a===``?`text-muted-foreground`:`text-foreground`),title:`Computed`,"data-computed":e.field,children:dn(e,a)}):e.type===`lookup`?(0,g.jsx)(rt,{value:a,onChange:t=>ie(n,e.field,t),onSelectRecord:t=>re(n,e,t),compact:!0,field:{reference:e.reference,display_field:e.displayField,id_field:e.idField,multiple:e.multiple,options:e.options,placeholder:`—`},disabled:o}):e.type===`select`?(0,g.jsxs)(p.Select,{value:a==null?``:String(a),onValueChange:t=>L(n,e,t),disabled:o,children:[(0,g.jsx)(p.SelectTrigger,{className:`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus:ring-1 focus:ring-ring/60`,"aria-label":e.label||e.field,children:(0,g.jsx)(p.SelectValue,{placeholder:`—`})}),(0,g.jsx)(p.SelectContent,{children:(e.options||[]).map(e=>(0,g.jsx)(p.SelectItem,{value:e.value,children:e.label},e.value))})]}):(0,g.jsxs)(`div`,{className:`relative`,children:[e.type===`currency`&&(0,g.jsx)(`span`,{className:`pointer-events-none absolute left-2 top-1/2 -translate-y-1/2 text-xs text-muted-foreground`,children:e.prefix||`¥`}),(0,g.jsx)(p.Input,{"data-cell":`${n}-${t}`,onKeyDown:e=>V(e,n,t),className:(0,p.cn)(`h-8 rounded-none border-0 bg-transparent px-2 shadow-none focus-visible:ring-1 focus-visible:ring-ring/60`,e.type===`currency`&&`pl-6`,hn(e.type)&&`text-right tabular-nums`),type:e.type===`date`?`date`:hn(e.type)?`number`:`text`,step:hn(e.type)?e.step??`any`:void 0,"aria-label":e.label||e.field,value:a==null?``:String(a),onChange:t=>L(n,e,t.target.value),disabled:o})]})};return(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,a),"data-testid":`line-items`,children:[J&&(0,g.jsx)(`div`,{className:`flex justify-end`,children:J}),(0,g.jsx)(`div`,{className:`border border-border rounded-lg overflow-x-auto`,children:(0,g.jsxs)(`table`,{ref:z,className:`w-full text-sm`,children:[(0,g.jsx)(`thead`,{className:`bg-muted/60 border-b border-border`,children:(0,g.jsxs)(`tr`,{children:[k&&(0,g.jsx)(`th`,{className:(0,p.cn)(`px-2 py-2 text-right text-xs font-medium text-muted-foreground`,N?`w-14`:`w-10`),children:`#`}),w.map(e=>(0,g.jsxs)(`th`,{className:(0,p.cn)(`px-2 py-2 text-xs font-medium text-muted-foreground whitespace-nowrap`,hn(e.type)?`text-right`:`text-left`),style:an(e),children:[e.label||e.field,e.required&&!e.computed&&(0,g.jsx)(`span`,{className:`text-destructive`,children:` *`})]},e.field)),K&&(0,g.jsx)(`th`,{style:{width:ae}})]})}),(0,g.jsx)(`tbody`,{className:`divide-y divide-border`,children:b&&_.length===0?(0,g.jsx)(`tr`,{children:(0,g.jsxs)(`td`,{colSpan:w.length+ +!!K+ +!!k,className:`px-3 py-6 text-center text-muted-foreground`,children:[`No items yet — click “`,f.add_label||`Add`,`” to begin.`]})}):Y.map((e,t)=>{let n=ce&&t===_.length,r=N&&!n&&!b;return(0,g.jsxs)(`tr`,{className:(0,p.cn)(`group`,!n&&`hover:bg-muted/30`),...N&&!n?{onDragOver:e=>{G.current!=null&&e.preventDefault()},onDrop:e=>{e.preventDefault(),G.current!=null&&(W(G.current,t),G.current=null)}}:{},children:[k&&(0,g.jsx)(`td`,{className:`px-1 py-1 text-right align-middle text-xs text-muted-foreground tabular-nums`,children:(0,g.jsxs)(`span`,{className:`inline-flex items-center justify-end gap-0.5`,children:[r&&(0,g.jsx)(`span`,{draggable:!0,onDragStart:()=>{G.current=t},onDragEnd:()=>{G.current=null},className:`cursor-grab text-muted-foreground/40 opacity-0 transition-opacity group-hover:opacity-100`,title:`Drag to reorder`,"aria-label":`Drag to reorder`,"data-testid":`line-items-drag-${t}`,children:(0,g.jsx)(m.GripVertical,{className:`h-3.5 w-3.5`})}),(0,g.jsx)(`span`,{className:(0,p.cn)(n&&`opacity-30`),children:t+1})]})}),w.map((r,i)=>{let a=y(r,e).required,o=!n&&!b&&a&&!r.computed&&(e[r.field]==null||e[r.field]===``);return(0,g.jsx)(`td`,{"aria-invalid":o||void 0,title:o?`${r.label||r.field} is required`:void 0,"data-testid":o?`line-items-invalid-${t}-${r.field}`:void 0,className:(0,p.cn)(`border-r border-border/40 px-1 py-0.5 align-middle last:border-r-0`,b&&`px-2 py-1.5`,o&&`bg-destructive/5 ring-1 ring-inset ring-destructive/50`),children:X(r,i,t,e)},r.field)}),K&&(0,g.jsx)(`td`,{className:`px-1 py-0.5 align-middle whitespace-nowrap`,children:(0,g.jsxs)(`div`,{className:`flex items-center justify-center gap-0.5`,children:[!n&&O&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-foreground`,"aria-label":`Open row`,title:`Open full form`,"data-testid":`line-items-expand-${t}`,onClick:()=>o(t),children:(0,g.jsx)(m.Maximize2,{className:`h-3.5 w-3.5`})}),!n&&D&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-foreground`,"aria-label":`Duplicate row`,title:`Duplicate line`,"data-testid":`line-items-duplicate-${t}`,onClick:()=>U(t),disabled:i||A!=null&&_.length>=A,children:(0,g.jsx)(m.Copy,{className:`h-3.5 w-3.5`})}),!n&&ee&&(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground hover:text-destructive`,"aria-label":`Remove row`,"data-testid":`line-items-remove-${t}`,onClick:()=>H(t),disabled:i||_.length<=te,children:(0,g.jsx)(m.Trash2,{className:`h-4 w-4`})})]})})]},t)})}),q&&(0,g.jsx)(`tfoot`,{className:`border-t border-border bg-muted/40`,children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{colSpan:Math.max(+!!k+se,1),className:`px-3 py-2 text-right text-xs font-medium text-muted-foreground`,children:`Total`}),(0,g.jsx)(`td`,{className:`px-3 py-2 text-right font-semibold text-foreground tabular-nums`,"data-testid":`line-items-total`,children:oe.toLocaleString()}),w.length-se-1+ +!!K>0&&(0,g.jsx)(`td`,{colSpan:w.length-se-1+ +!!K})]})})]})}),E&&(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:b&&c?c:R,disabled:A!=null&&_.length>=A,"data-testid":`line-items-add`,children:[(0,g.jsx)(m.Plus,{className:`mr-1.5 h-4 w-4`}),f.add_label||`Add line`]})]})}var hn,gn,_n,vn,yn=o((()=>{ct(),hn=e=>e===`number`||e===`currency`,gn={text:160,select:132,lookup:168,number:104,currency:116,date:150},_n=e=>e.width??gn[e.type??`text`]??132,vn=mn})),bn=s({ColorField:()=>xn});function xn({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,g.jsx)(`span`,{className:`text-sm`,children:e||(0,g.jsx)(p.EmptyValue,{})})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.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,g.jsx)(p.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 Sn=o((()=>{})),Cn=s({SliderField:()=>wn});function wn({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,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`span`,{className:`text-sm font-medium`,children:e??o}),(0,g.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,s]})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,g.jsx)(p.Slider,{value:[e??o],onValueChange:e=>t(e[0]),min:o,max:s,step:c,disabled:r||i.disabled,className:i.className}),(0,g.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??o})]})}var Tn=o((()=>{})),En=s({RatingField:()=>Dn});function Dn({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,g.jsxs)(`div`,{className:(0,p.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,t)=>(0,g.jsx)(m.Star,{className:`w-5 h-5 ${t<s?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,g.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]}):(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,n)=>(0,g.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,g.jsx)(m.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,g.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]})}var On=o((()=>{})),kn=s({CodeField:()=>An});function An({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.language??`javascript`;return r?(0,g.jsx)(`pre`,{className:(0,p.cn)(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,g.jsx)(`code`,{children:e||(0,g.jsx)(p.EmptyValue,{})})}):(0,g.jsx)(p.Textarea,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${o} code here...`,disabled:r||i.disabled,className:(0,p.cn)(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var jn=o((()=>{})),Mn=s({AvatarField:()=>Nn});function Nn({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(``)},f=()=>(c?.defaultName||c?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return r?(0,g.jsxs)(p.Avatar,{className:`w-16 h-16`,children:[e&&(0,g.jsx)(p.AvatarImage,{src:e,alt:c?.label}),(0,g.jsx)(p.AvatarFallback,{children:f()})]}):(0,g.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,g.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,g.jsxs)(p.Avatar,{className:`w-16 h-16`,children:[e&&(0,g.jsx)(p.AvatarImage,{src:e,alt:c?.label}),(0,g.jsx)(p.AvatarFallback,{children:f()})]}),!r&&a&&e&&(0,g.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,g.jsx)(m.X,{className:`w-3 h-3`})})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,g.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,onChange:l,className:`hidden`}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>s.current?.click(),disabled:r||i.disabled,children:[(0,g.jsx)(m.Upload,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var Pn=o((()=>{})),Fn=s({AddressField:()=>In});function In({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,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{})}return(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,g.jsx)(p.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,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,g.jsx)(p.Input,{id:`city`,type:`text`,value:a.city||``,onChange:e=>o(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,g.jsx)(p.Input,{id:`state`,type:`text`,value:a.state||``,onChange:e=>o(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,g.jsx)(p.Input,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>o(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,g.jsx)(p.Input,{id:`country`,type:`text`,value:a.country||``,onChange:e=>o(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var Ln=o((()=>{})),Rn=s({GeolocationField:()=>zn});function zn({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)}`,f=()=>{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,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(m.MapPin,{className:`w-4 h-4 text-muted-foreground`}),e?(0,g.jsx)(`span`,{className:`text-sm`,children:e}):(0,g.jsx)(p.EmptyValue,{}),s.latitude&&s.longitude&&(0,g.jsx)(p.Button,{type:`button`,variant:`link`,size:`sm`,onClick:f,className:`p-0 h-auto`,children:`View on map`})]})}return(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:l,disabled:r||a,children:[(0,g.jsx)(m.Crosshair,{className:`w-4 h-4 mr-2`}),a?`Getting location...`:`Use Current Location`]}),s.latitude&&s.longitude&&(0,g.jsxs)(p.Button,{type:`button`,variant:`link`,size:`sm`,onClick:f,children:[(0,g.jsx)(m.MapPin,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,g.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,g.jsx)(p.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,g.jsxs)(`div`,{children:[(0,g.jsx)(p.Label,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,g.jsx)(p.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,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,s.accuracy.toFixed(0),`m`]})]})}var Bn=o((()=>{})),Vn=s({SignatureField:()=>Hn});function Hn({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,g.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,g.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsx)(`div`,{className:`border rounded bg-white`,children:(0,g.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,g.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Sign above`:`Signature captured`}),(0,g.jsxs)(p.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,g.jsx)(m.Eraser,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var Un=o((()=>{})),Wn=s({QRCodeField:()=>Gn});function Gn({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=u.default.useState(!1),s=n||i.schema;return r?(0,g.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,g.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,g.jsx)(p.EmptyValue,{})}),e&&(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:[(0,g.jsx)(m.QrCode,{className:`w-4 h-4 mr-2`}),a?`Hide`:`Show`,` QR`]})]}):(0,g.jsxs)(`div`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(p.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,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,g.jsx)(m.Copy,{className:`w-4 h-4`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:(0,g.jsx)(m.QrCode,{className:`w-4 h-4`})})]})]}),a&&e&&(0,g.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,g.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,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var Kn=o((()=>{})),qn=s({MultiSelectField:()=>Jn});function Jn({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=Array.isArray(e)?e:e==null?[]:[e];if(r)return s.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:s.map(e=>(0,g.jsx)(p.Badge,{variant:`outline`,children:o.find(t=>t.value===e)?.label||e},e))});let c=e=>{t(s.includes(e)?s.filter(t=>t!==e):[...s,e])};return(0,g.jsx)(`div`,{className:(0,p.cn)(`flex flex-wrap gap-1.5`,i),children:o.map(e=>{let t=s.includes(e.value);return(0,g.jsx)(`button`,{type:`button`,onClick:()=>c(e.value),disabled:a.disabled,"aria-pressed":t,className:(0,p.cn)(`rounded-full border px-3 py-1 text-sm transition-colors`,t?`border-primary bg-primary text-primary-foreground`:`border-input bg-background text-foreground hover:bg-accent`),children:e.label},e.value)})})}var Yn=o((()=>{})),Xn=s({RadioField:()=>Zn});function Zn({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=(0,u.useId)();return r?e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-sm`,children:o.find(t=>t.value===e)?.label||String(e)}):(0,g.jsx)(p.RadioGroup,{value:e??``,onValueChange:t,disabled:a.disabled,className:i,children:o.map(e=>{let t=`${s}-${e.value}`;return(0,g.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,g.jsx)(p.RadioGroupItem,{value:e.value,id:t}),(0,g.jsx)(p.Label,{htmlFor:t,className:`font-normal`,children:e.label})]},e.value)})})}var Qn=o((()=>{})),$n=s({CheckboxesField:()=>er});function er({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.options||[],s=Array.isArray(e)?e:e==null?[]:[e],c=(0,u.useId)();if(r)return s.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:s.map(e=>(0,g.jsx)(p.Badge,{variant:`outline`,children:o.find(t=>t.value===e)?.label||e},e))});let l=(e,n)=>{t(n?[...s.filter(t=>t!==e),e]:s.filter(t=>t!==e))};return(0,g.jsx)(`div`,{className:i,children:o.map(e=>{let t=`${c}-${e.value}`;return(0,g.jsxs)(`div`,{className:`flex items-center space-x-2 py-0.5`,children:[(0,g.jsx)(p.Checkbox,{id:t,checked:s.includes(e.value),onCheckedChange:t=>l(e.value,!!t),disabled:a.disabled}),(0,g.jsx)(p.Label,{htmlFor:t,className:`font-normal`,children:e.label})]},e.value)})})}var tr=o((()=>{})),nr=s({TagsField:()=>rr});function rr({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=Array.isArray(e)?e:e==null?[]:[e],[s,c]=u.default.useState(``);if(r)return o.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:o.map(e=>(0,g.jsx)(p.Badge,{variant:`secondary`,children:e},e))});let l=e=>{let n=e.trim();!n||o.includes(n)||(t([...o,n]),c(``))},d=e=>t(o.filter(t=>t!==e));return(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-wrap items-center gap-1.5 rounded-md border border-input bg-background p-1.5`,i),children:[o.map(e=>(0,g.jsxs)(p.Badge,{variant:`secondary`,className:`gap-1`,children:[e,(0,g.jsx)(`button`,{type:`button`,onClick:()=>d(e),className:`ml-0.5 rounded-full text-muted-foreground hover:text-foreground`,"aria-label":`Remove ${e}`,children:`×`})]},e)),(0,g.jsx)(p.Input,{value:s,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`||e.key===`,`?(e.preventDefault(),l(s)):e.key===`Backspace`&&s===``&&o.length>0&&d(o[o.length-1])},onBlur:()=>l(s),disabled:a.disabled,placeholder:o.length===0?`输入后回车添加…`:``,className:`h-7 flex-1 border-0 bg-transparent p-0 px-1 shadow-none focus-visible:ring-0 min-w-[8ch]`})]})}var ir=o((()=>{}));wt(),Dt(),Pt(),Bt(),Ut(),Kt(),$t(),nn(),yn(),Pn(),Un(),xt(),Tn(),On(),Yn(),Qn(),tr(),ir(),ht(),vt(),ct(),Xt(),Sn(),Ln(),Lt(),Bn(),jn(),Kn();var ar={text:S,textarea:J,number:T,currency:q,percent:bt,slider:wn,progress:wn,rating:Dn,boolean:D,toggle:D,select:M,status:M,multiselect:Jn,radio:Zn,checkboxes:er,tags:rr,date:I,datetime:mt,time:_t,email:L,phone:B,url:U,lookup:rt,master_detail:rt,user:Yt,owner:Yt,color:xn,address:In,location:It,geolocation:zn,code:An,qrcode:Gn},or=new Set([`formula`,`summary`,`auto_number`,`file`,`image`,`avatar`,`signature`,`markdown`,`html`,`richtext`,`password`,`object`,`grid`,`vector`,`object-ref`,`filter-condition`,`recipient-picker`]),sr=new Set([`boolean`,`toggle`,`select`,`status`,`radio`,`rating`]);function cr(e){return!!e&&e in ar}var lr=new Set([`lookup`,`master_detail`,`user`,`owner`]);function ur({field:e,value:t,onChange:n,readonly:r}){let i=e?.type?ar[e.type]:void 0;return i?(0,g.jsx)(i,{field:e,value:t,onChange:n,readonly:r,...e?.type&&lr.has(e.type)?{compact:!0}:{}}):null}var dr=s({ObjectRefField:()=>fr,default:()=>fr});function fr({value:e,onChange:t,readonly:n,className:r,...i}){let a=u.default.useContext(h.SchemaRendererContext),o=i.dataSource??a?.dataSource??null,s=i.disabled,[c,l]=u.default.useState(null);u.default.useEffect(()=>{if(!o)return;let e=!1;return(async()=>{try{let t=[];if(typeof o.getObjects==`function`)t=await o.getObjects()??[];else if(typeof o.find==`function`){let e=await o.find(`sys_metadata`,{$filter:{type:`object`},$top:1e3});t=(e?.data??e?.records??(Array.isArray(e)?e:[])).map(e=>({name:String(e?.name??``),label:e?.label==null?void 0:String(e.label)})).filter(e=>e.name)}e||l(t)}catch{e||l([])}})(),()=>{e=!0}},[o]);let d=u.default.useMemo(()=>{let t=(c??[]).map(e=>({value:e.name,label:e.label?`${e.label} (${e.name})`:e.name}));return e&&!t.some(t=>t.value===e)&&t.unshift({value:e,label:e}),t.sort((e,t)=>e.label.localeCompare(t.label))},[c,e]);return n?e?(0,g.jsx)(`span`,{className:r,children:d.find(t=>t.value===e)?.label??e}):(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(p.Combobox,{options:d,value:e??``,onValueChange:e=>t(e),placeholder:c===null?`Loading objects…`:`Select an object`,searchPlaceholder:`Search objects…`,emptyText:c===null?`Loading…`:`No objects found`,disabled:s,className:(0,p.cn)(r)})}var pr=o((()=>{})),mr=s({FilterConditionField:()=>wr,default:()=>wr});function hr(e){let t=e?.fields,n=Array.isArray(t)?t.map(e=>[e?.name,e]):t&&typeof t==`object`?Object.entries(t):[],r=[];for(let[e,t]of n){if(!e||!t||t.hidden)continue;let n=t.type;n&&Er.has(n)||r.push({value:e,label:t.label||e,type:n,options:Array.isArray(t.options)?t.options.map(e=>typeof e==`string`?{value:e,label:e}:{value:String(e?.value),label:String(e?.label??e?.value)}):void 0,referenceTo:t.reference_to||t.reference})}return r}function gr(e,t){if(e==null)return e;if(t===`boolean`||t===`toggle`)return typeof e==`boolean`?e:e===`true`||e!==`false`&&e;if(t===`number`||t===`currency`||t===`percent`||t===`rating`||t===`slider`){let t=Number(e);return Number.isFinite(t)&&e!==``?t:e}return e}function _r(e){return Array.isArray(e)?e:typeof e==`string`?e.split(`,`).map(e=>e.trim()).filter(Boolean):e==null?[]:[e]}function vr(e,t){let{field:n,operator:r,value:i}=e||{};if(!n)return null;let a=t(n),o=gr(i,a);switch(r){case`equals`:return{[n]:o};case`notEquals`:return{[n]:{$ne:o}};case`contains`:return{[n]:{$contains:i}};case`notContains`:return{[n]:{$ncontains:i}};case`isEmpty`:return{[n]:{$in:[null,``]}};case`isNotEmpty`:return{[n]:{$nin:[null,``]}};case`greaterThan`:case`after`:return{[n]:{$gt:o}};case`lessThan`:case`before`:return{[n]:{$lt:o}};case`greaterOrEqual`:return{[n]:{$gte:o}};case`lessOrEqual`:return{[n]:{$lte:o}};case`between`:{let[e,t]=Array.isArray(i)?i:[void 0,void 0];return{[n]:{$gte:gr(e,a),$lte:gr(t,a)}}}case`in`:return{[n]:{$in:_r(i).map(e=>gr(e,a))}};case`notIn`:return{[n]:{$nin:_r(i).map(e=>gr(e,a))}};default:return{[n]:o}}}function yr(e,t){let n=(e?.conditions??[]).map(e=>vr(e,t)).filter(e=>!!e);if(n.length===0)return null;if(e.logic===`or`)return{$or:n};if(n.length===1)return n[0];let r=n.flatMap(e=>Object.keys(e));return new Set(r).size===r.length?Object.assign({},...n):{$and:n}}function br(e,t){return Array.isArray(e)&&e.length===t.length&&e.every((e,n)=>e===t[n])}function xr(e,t,n){let r=`c_${n}_${e}`;if(typeof t!=`object`||!t||Array.isArray(t))return{id:r,field:e,operator:`equals`,value:t};let i=Object.keys(t);if(i.length===1){let n=i[0],a=t[n];switch(n){case`$ne`:return{id:r,field:e,operator:`notEquals`,value:a};case`$contains`:return{id:r,field:e,operator:`contains`,value:a};case`$ncontains`:return{id:r,field:e,operator:`notContains`,value:a};case`$gt`:return{id:r,field:e,operator:`greaterThan`,value:a};case`$lt`:return{id:r,field:e,operator:`lessThan`,value:a};case`$gte`:return{id:r,field:e,operator:`greaterOrEqual`,value:a};case`$lte`:return{id:r,field:e,operator:`lessOrEqual`,value:a};case`$in`:return br(a,[null,``])?{id:r,field:e,operator:`isEmpty`,value:``}:{id:r,field:e,operator:`in`,value:a};case`$nin`:return br(a,[null,``])?{id:r,field:e,operator:`isNotEmpty`,value:``}:{id:r,field:e,operator:`notIn`,value:a};default:return null}}return i.length===2&&`$gte`in t&&`$lte`in t?{id:r,field:e,operator:`between`,value:[t.$gte,t.$lte]}:null}function Sr(e){if(e==null)return{...Tr,conditions:[]};if(typeof e!=`object`||Array.isArray(e))return null;let t=Object.entries(e);if(t.length===0)return{...Tr,conditions:[]};if(t.length===1&&(e.$or||e.$and)){let t=e.$or?`or`:`and`,n=e.$or||e.$and;if(!Array.isArray(n))return null;let r=[];for(let e=0;e<n.length;e++){let t=n[e];if(!t||typeof t!=`object`||Object.keys(t).length!==1)return null;let i=Object.keys(t)[0];if(i.startsWith(`$`))return null;let a=xr(i,t[i],e);if(!a)return null;r.push(a)}return{id:`root`,logic:t,conditions:r}}let n=[],r=0;for(let[e,i]of t){if(e.startsWith(`$`))return null;let t=xr(e,i,r++);if(!t)return null;n.push(t)}return{id:`root`,logic:`and`,conditions:n}}function Cr(e){if(e==null||e===``)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return``}}function wr({value:e,onChange:t,readonly:n,className:r,...i}){let a=u.default.useContext(h.SchemaRendererContext),o=i.dataSource??a?.dataSource??null,s=i.dependentValues??{},c=String(s.object_name??``),[l,d]=u.default.useState(null);u.default.useEffect(()=>{if(d(null),!o||!c||typeof o.getObjectSchema!=`function`)return;let e=!1;return(async()=>{try{let t=await o.getObjectSchema(c);e||d(hr(t))}catch{e||d([])}})(),()=>{e=!0}},[o,c]);let f=u.default.useMemo(()=>Cr(e),[e]),m=u.default.useMemo(()=>{if(!f.trim())return{mongo:{},ok:!0};try{return{mongo:JSON.parse(f),ok:!0}}catch{return{mongo:null,ok:!1}}},[f]),_=u.default.useMemo(()=>m.ok?Sr(m.mongo):null,[m]),v=m.ok&&_!==null,[y,b]=u.default.useState(!v);u.default.useEffect(()=>{v||b(!0)},[v]);let x=u.default.useMemo(()=>{let e=new Map((l??[]).map(e=>[e.value,e.type]));return t=>e.get(t)},[l]);return c?n?f.trim()?(0,g.jsx)(`pre`,{className:(0,p.cn)(`overflow-x-auto rounded bg-muted/40 p-2 text-xs`,r),children:f}):(0,g.jsx)(`span`,{className:(0,p.cn)(`text-sm text-muted-foreground`,r),children:`All records`}):(0,g.jsxs)(`div`,{className:(0,p.cn)(`flex flex-col gap-2`,r),children:[y?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`textarea`,{className:`min-h-[96px] w-full rounded border bg-background px-2 py-1 font-mono text-xs`,value:f,placeholder:`{ "type": "customer", "is_active": true }`,onChange:e=>t(e.target.value)}),!m.ok&&(0,g.jsx)(`span`,{className:`text-xs text-destructive`,children:`Invalid JSON — the rule will match no records until fixed.`})]}):(0,g.jsx)(p.FilterBuilder,{fields:l??[],value:_??Tr,onChange:e=>{let n=yr(e,x);t(n==null?``:JSON.stringify(n))}}),(0,g.jsx)(`button`,{type:`button`,className:`self-start text-xs text-muted-foreground underline-offset-2 hover:underline`,onClick:()=>b(e=>!e),disabled:!v&&!y,title:v?void 0:`This criteria can only be edited as JSON`,children:y?`Use visual builder`:`Edit as JSON`})]}):(0,g.jsx)(`p`,{className:(0,p.cn)(`text-sm text-muted-foreground`,r),children:`Select an object first.`})}var Tr,Er,Dr=o((()=>{Tr={id:`root`,logic:`and`,conditions:[]},Er=new Set([`object`,`vector`,`file`,`image`,`avatar`,`signature`,`richtext`,`html`,`markdown`,`location`,`grid`,`json`,`code`])})),Or=s({RecipientPickerField:()=>kr,default:()=>kr});function kr({value:e,onChange:t,readonly:n,className:r,...i}){let a=u.default.useContext(h.SchemaRendererContext),o=i.dataSource??a?.dataSource??null,s=i.disabled,c=i.dependentValues??{},l=String(c.recipient_type??``),d=Ar[l],[f,m]=u.default.useState(null),_=u.default.useRef(null);u.default.useEffect(()=>{_.current!==null&&_.current!==l&&e&&t(``),_.current=l},[l]),u.default.useEffect(()=>{if(m(null),!o||!d||typeof o.find!=`function`)return;let e=!1;return(async()=>{try{let t=await o.find(d.object,{$top:500,$orderby:`name asc`}),n=t?.data??t?.records??(Array.isArray(t)?t:[]);e||m(Array.isArray(n)?n:[])}catch{e||m([])}})(),()=>{e=!0}},[o,d?.object]);let v=e=>{for(let t of d?.labelFields??[`name`])if(e?.[t])return String(e[t]);return String(e?.id??``)},y=e=>String(e?.[d?.storeField??`id`]??``),b=u.default.useMemo(()=>{let t=(f??[]).map(e=>({value:y(e),label:v(e)})).filter(e=>e.value);return e&&!t.some(t=>t.value===e)&&t.unshift({value:e,label:e}),t},[f,e,d]);return l?d?n?e?(0,g.jsx)(`span`,{className:r,children:b.find(t=>t.value===e)?.label??e}):(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(p.Combobox,{options:b,value:e??``,onValueChange:e=>t(e),placeholder:f===null?`Loading…`:`Select a ${l.replace(/_/g,` `)}`,searchPlaceholder:`Search…`,emptyText:f===null?`Loading…`:`No matches`,disabled:s,className:r}):(0,g.jsx)(`input`,{className:(0,p.cn)(`w-full rounded border bg-background px-2 py-1 text-sm`,r),value:e??``,disabled:s||n,onChange:e=>t(e.target.value)}):(0,g.jsx)(`p`,{className:(0,p.cn)(`text-sm text-muted-foreground`,r),children:`Select a recipient type first.`})}var Ar,jr=o((()=>{Ar={user:{object:`sys_user`,storeField:`id`,labelFields:[`name`,`full_name`,`email`]},team:{object:`sys_team`,storeField:`id`,labelFields:[`name`,`label`]},business_unit:{object:`sys_business_unit`,storeField:`id`,labelFields:[`name`,`label`]},unit_and_subordinates:{object:`sys_business_unit`,storeField:`id`,labelFields:[`name`,`label`]},position:{object:`sys_position`,storeField:`name`,labelFields:[`label`,`name`]}}}));At();function Mr({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,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-2`,i),children:[o.length===0?(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No related records`}):o.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between p-2 border rounded hover:bg-muted/50`,children:[(0,g.jsx)(`span`,{className:`text-sm`,children:e.label}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,g.jsx)(m.ExternalLink,{className:`w-4 h-4`})})]},e.id)),(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[o.length,` `,o.length===1?`record`:`records`]})]}):(0,g.jsxs)(`div`,{className:(0,p.cn)(`space-y-3`,i),children:[(0,g.jsxs)(`div`,{className:`space-y-2`,children:[o.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,g.jsx)(p.Badge,{variant:`outline`,children:e.id}),(0,g.jsx)(`span`,{className:`text-sm flex-1`,children:e.label})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>u(e),children:(0,g.jsx)(m.ExternalLink,{className:`w-4 h-4`})}),(0,g.jsx)(p.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(e.id),disabled:a.disabled,children:(0,g.jsx)(m.X,{className:`w-4 h-4`})})]})]},e.id)),o.length===0&&(0,g.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20`,children:`No related records`})]}),(0,g.jsxs)(p.Button,{type:`button`,variant:`outline`,className:`w-full`,onClick:c,disabled:a.disabled,children:[(0,g.jsx)(m.Plus,{className:`w-4 h-4 mr-2`}),`Add `,s?.label||`Record`]})]})}var Nr=s({default:()=>Pr});function Pr({value:e}){return(0,g.jsx)(`div`,{className:`prose prose-sm max-w-none dark:prose-invert break-words`,children:(0,g.jsx)(v.default,{remarkPlugins:[y.default],rehypePlugins:[b.default],children:e})})}var Fr=o((()=>{}));C(),E(),O(),N(),re(),R(),V(),W(),oe(),ce(),ct(),ht(),vt(),xt(),Lt(),Xt(),Sn(),Tn(),On(),jn(),Ln(),Bn(),Kn(),G(),Xe(),C(),E(),O(),N(),re(),ht(),vt(),R(),V(),W(),oe(),xt(),wt(),ce(),le(),ct(),pr(),Dr(),jr(),be(),Dt(),Pt(),Lt(),Bt(),Ut(),Kt(),Xt(),$t(),nn(),yn(),Sn(),Tn(),On(),jn(),Pn(),Ln(),Bn(),Un(),Kn(),Yn(),Qn(),tr(),ir();var Ir=new Map;function Lr(e,t){if(!e||typeof e!=`object`)return;if(t){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}for(let t of[`name`,`full_name`,`display_name`,`label`,`title`,`subject`,`username`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}let n=e.first_name,r=e.last_name,i=[e.salutation,n,r].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `);if(i)return i;let a=e.email;if(typeof a==`string`&&a.trim())return a.trim();let o=new Set([`id`,`_id`,`organization_id`,`created_by`,`updated_by`,`created_at`,`updated_at`,`tenant_id`]),s=[`_name`,`_title`,`_number`,`_code`,`_label`];for(let[t,n]of Object.entries(e))if(!o.has(t)&&!t.endsWith(`_id`)&&s.some(e=>t.endsWith(e))){if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}}function Rr(e){if(typeof e!=`string`||!/^[A-Za-z0-9_-]{12,32}$/.test(e))return!1;let t=/[A-Z]/.test(e),n=/[a-z]/.test(e),r=/[0-9_-]/.test(e);return t&&n||t&&r||n&&r}function zr(e,t){let n=u.default.useContext(h.SchemaRendererContext)?.dataSource,[,r]=u.default.useState(0),i=!!e&&!!n&&typeof n.find==`function`&&(typeof t==`string`||typeof t==`number`)&&t!==``,a=i?`${e}:${String(t)}`:``;if(u.default.useEffect(()=>{if(!i)return;let o=Ir.get(a);if(o&&o.state!==`pending`&&o.promise==null||o?.state===`pending`)return;let s=(async()=>{try{let r;if(typeof n.findOne==`function`)r=await n.findOne(e,t);else{let i=await n.find(e,{$filter:{id:t},options:{$top:1}});r=(Array.isArray(i)?i:i?.value||i?.data||[])[0]}let i=Lr(r);Ir.set(a,{state:`ok`,name:i})}catch{Ir.set(a,{state:`err`})}r(e=>e+1)})();Ir.set(a,{state:`pending`,promise:s})},[a,i,e,t,n]),!i)return;let o=Ir.get(a);return o?.state===`ok`?o.name:void 0}function Br(){try{let{t:e}=(0,h.useObjectTranslation)();return(t,n)=>{let r=e(t);return!r||r===t?n:r}}catch{return(e,t)=>t}}function Vr(e){if(e==null||typeof e==`number`||typeof e==`boolean`)return e;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return Vr(JSON.parse(t))}catch{}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.externalId||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.externalId||t.id||t._id||`[Object]`)}return String(e)}function Hr(e,t){let n=Number.isFinite(e)&&e===Math.trunc(e)?0:2;if(!t)return Wr(e,n);try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}}function Ur(e,t){if(!t)try{return new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,``)}catch{return String(e)}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 Wr(e,t=2){try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}catch{return e.toFixed(t)}}function Gr(e,t=0){return`${(0,d.percentDisplayValue)(e).toFixed(t)}%`}function Kr(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function qr(e,t){if(e==null||e===``)return`—`;let n=e instanceof Date?e:new Date(e);if(!(n instanceof Date)||isNaN(n.getTime()))return`—`;let r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate()),a=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()-i.getTime(),o=Math.round(a/(1e3*60*60*24));if(o===0)return`Today`;if(o===1)return`Tomorrow`;if(o===-1)return`Yesterday`;if(o<-1){let e=Math.abs(o);return e<=7?t?.dueLike?`Overdue ${e}d`:`${e}d ago`:Jr(n)}return o>1&&o<=7?`In ${o} days`:Jr(n)}function Jr(e,t,n){if(e==null||e===``)return`—`;let r=e instanceof Date?e:new Date(e);if(!(r instanceof Date)||isNaN(r.getTime()))return`—`;if(t===`short`)return`${r.toLocaleDateString(`en-US`,{month:`short`})} ${r.getDate()}, '${String(r.getFullYear()).slice(-2)}`;if(t===`relative`)return qr(r,n);let i=r.getFullYear()===new Date().getFullYear();return r.toLocaleDateString(void 0,{year:i?void 0:`numeric`,month:`short`,day:`numeric`})}function Yr(e){if(e==null||e===``)return`—`;let t=e instanceof Date?e:new Date(e);return!(t instanceof Date)||isNaN(t.getTime())?`—`:t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Xr({value:e}){let t=Vr(e);return t==null||t===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`truncate`,children:String(t)})}function Zr({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=Vr(e),r=t,i=typeof r.scale==`number`?r.scale:void 0,a=Number(n);return(0,g.jsx)(`span`,{className:`tabular-nums`,children:isNaN(a)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:i??0,maximumFractionDigits:i??20}).format(a)})}function Qr({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=Vr(e),{currency:r}=(0,f.useLocalization)(),i=(0,f.resolveFieldCurrency)(t,r),a=Number(n);return(0,g.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(a)?String(n):Hr(a,i)})}var $r=/progress|completion/;function ei({value:e,field:t}){if(e==null)return(0,g.jsx)(p.EmptyValue,{});let n=Vr(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,g.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=$r.test(t?.name?.toLowerCase()||``),o=a?i:i>-1&&i<1?i*100:i,s=a?`${i.toFixed(r)}%`:Gr(i,r),c=Math.max(0,Math.min(100,o));return(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted ring-1 ring-inset ring-border/60 overflow-hidden shrink-0`,role:`progressbar`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,children:(0,g.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${c}%`}})}),(0,g.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:s})]})}var ti=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function ni({value:e,field:t}){if(e==null)return(0,g.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,g.jsx)(p.EmptyValue,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,g.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,g.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,g.jsx)(m.Check,{className:`size-3 text-white`})}):(0,g.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):ti.has(n)&&!e?(0,g.jsxs)(p.Badge,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||Kr(n),` — Off`]}):(0,g.jsx)(`div`,{className:`flex items-center justify-start`,children:(0,g.jsx)(p.Checkbox,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function ri({value:e,field:t}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let n=Vr(e),r=t,i=r.format||`relative`,a=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),o=r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(a),s=Jr(n,i,{dueLike:o}),c=n==null?null:new Date(n),l=c!==null&&!isNaN(c.getTime()),u=new Date;u.setHours(0,0,0,0);let d=o&&l&&c<u,f=l?c.toISOString():String(n);return(0,g.jsx)(`span`,{className:`tabular-nums${d?` text-red-600`:``}`,title:f,children:s})}function ii({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=Vr(e),n=t==null?null:new Date(t);if(n===null||isNaN(n.getTime()))return(0,g.jsx)(p.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,g.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,g.jsx)(`span`,{children:r}),(0,g.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var ai={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`,contacted:`blue`,qualified:`purple`,converted:`green`,won:`green`,lost:`red`,紧急:`red`,严重:`red`,高:`orange`,中:`yellow`,普通:`blue`,低:`gray`,无:`gray`,新建:`gray`,草稿:`gray`,待处理:`yellow`,待审核:`yellow`,待联系:`yellow`,挂起:`yellow`,进行中:`blue`,处理中:`blue`,已联系:`blue`,跟进中:`blue`,已发货:`blue`,打开:`blue`,已确认:`green`,已审核:`green`,已通过:`green`,已完成:`green`,已支付:`green`,已签收:`green`,已转化:`green`,成单:`green`,赢得:`green`,已签约:`green`,已交付:`purple`,已归档:`indigo`,已关闭:`gray`,已取消:`red`,已拒绝:`red`,失败:`red`,逾期:`red`,流失:`red`,丢失:`red`},oi={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`},si={gray:`bg-gray-400 dark:bg-gray-500`,red:`bg-red-500`,orange:`bg-orange-500`,yellow:`bg-yellow-500`,green:`bg-green-500`,blue:`bg-blue-500`,indigo:`bg-indigo-500`,purple:`bg-purple-500`,pink:`bg-pink-500`},ci=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function li(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return ci[Math.abs(t)%ci.length]}function ui(e){let t=/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return;let n=t[1];n.length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n.slice(0,2),16)/255,i=parseInt(n.slice(2,4),16)/255,a=parseInt(n.slice(4,6),16)/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2;if((c===0?0:c/(1-Math.abs(2*l-1)))<.22)return`gray`;let u;return u=o===r?((i-a)/c%6+6)%6:o===i?(a-r)/c+2:(r-i)/c+4,u*=60,u>=345||u<15?`red`:u<30?`orange`:u<60?`yellow`:u<170?`green`:u<238?`blue`:u<250?`indigo`:u<295?`purple`:`pink`}function di(e){if(e){if(oi[e])return e;if(e.charAt(0)===`#`)return ui(e)}}function fi(e,t){let n=di(e);if(n&&oi[n])return oi[n];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let r=String(t).toLowerCase().replace(/[\s-]/g,`_`),i=ai[r];return i&&oi[i]?oi[i]:oi[li(r)]}function pi(e,t){let n=di(e);if(n&&oi[n])return n;if(t==null||t===``)return;let r=String(t).toLowerCase().replace(/[\s-]/g,`_`);return ai[r]||li(r)}var mi={gray:`#6b7280`,red:`#ef4444`,orange:`#f97316`,yellow:`#eab308`,green:`#22c55e`,blue:`#3b82f6`,indigo:`#6366f1`,purple:`#a855f7`,pink:`#ec4899`};function hi(e,t=`#3b82f6`){return e?mi[e]??t:t}function gi({value:e,field:t}){let n=t,r=n.options||[],i=n.appearance===`dot`?`dot`:`badge`;if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let a=e=>{let t=r.find(t=>t.value===e);if(t)return t;let n=String(e).toLowerCase();return r.find(e=>String(e.value).toLowerCase()===n)},o=(e,t)=>{let n=a(e),r=n?.label||Kr(String(e));if(i===`dot`){let i=di(n?.color)||ai[String(e).toLowerCase().replace(/[\s-]/g,`_`)]||li(String(e).toLowerCase().replace(/[\s-]/g,`_`));return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,g.jsx)(`span`,{className:(0,p.cn)(`h-1.5 w-1.5 rounded-full shrink-0`,si[i]||si.gray),"aria-hidden":`true`}),(0,g.jsx)(`span`,{className:`truncate`,children:r})]},t)}return(0,g.jsx)(p.Badge,{variant:`outline`,className:fi(n?.color,e),children:r},t)};return Array.isArray(e)?(0,g.jsx)(`div`,{className:(0,p.cn)(`flex flex-wrap`,i===`dot`?`gap-x-3 gap-y-1`:`gap-1`),children:e.map((e,t)=>o(e,t))}):o(e)}function _i({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=Br(),n=String(Vr(e)??``),[r,i]=u.default.useState(!1);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,g.jsx)(p.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,g.jsx)(`a`,{href:`mailto:${n}`,onClick:e=>e.stopPropagation(),children:n})}),(0,g.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(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyEmail`,`Copy email`),children:r?(0,g.jsx)(m.Check,{className:`h-3 w-3 text-green-600`}):(0,g.jsx)(m.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function vi({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=String(Vr(e)??``);return(0,g.jsx)(p.Button,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,g.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function yi({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=Br(),n=String(Vr(e)??``),[r,i]=u.default.useState(!1);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,g.jsxs)(`a`,{href:`tel:${n}`,className:`inline-flex items-center gap-1 text-blue-600 hover:text-blue-800`,onClick:e=>e.stopPropagation(),children:[(0,g.jsx)(m.Phone,{className:`h-3 w-3`}),n]}),(0,g.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(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyPhone`,`Copy phone number`),children:r?(0,g.jsx)(m.Check,{className:`h-3 w-3 text-green-600`}):(0,g.jsx)(m.Copy,{className:`h-3 w-3 text-muted-foreground`})})]})}function bi({value:e,field:t}){if(!e)return(0,g.jsx)(p.EmptyValue,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,g.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,g.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function xi({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});let t=e=>typeof e==`string`?e:e?.url||e?.src||e?.href||e?.thumbnailUrl||``,n=(e,t)=>e&&typeof e==`object`&&(e.name||e.original_name)||t;if(Array.isArray(e)){let r=e.map(e=>({url:t(e),name:n(e,`Image`)})).filter(e=>e.url);return r.length===0?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsxs)(`div`,{className:`flex -space-x-2`,children:[r.slice(0,3).map((e,t)=>(0,g.jsx)(`img`,{src:e.url,alt:e.name||`Image ${t+1}`,className:`size-8 rounded-md border-2 border-white object-cover`},t)),r.length>3&&(0,g.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:[`+`,r.length-3]})]})}let r=t(e);return r?(0,g.jsx)(`img`,{src:r,alt:n(e,`Image`),className:`size-10 rounded-md object-cover`}):(0,g.jsx)(p.EmptyValue,{})}function Si({value:e,field:t}){let n=t.reference_to||t.reference,r=(()=>{if(Array.isArray(e))return e.find(e=>e!=null&&(typeof e==`string`||typeof e==`number`)&&e!==``);if(e!=null&&e!==``&&(typeof e==`string`||typeof e==`number`)&&typeof e!=`object`)return e})(),i=zr(n,r);if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`))try{let e=JSON.parse(t);if(e&&typeof e==`object`){let t=Lr(e)||String(e.externalId??e.id??e._id??``);if(t)return(0,g.jsx)(`span`,{className:`truncate`,children:t})}}catch{}}if(!Array.isArray(e)&&typeof e==`object`){let t=e,n=Lr(t)||String(t.id||t._id||``);if(n)return(0,g.jsx)(`span`,{className:`truncate`,children:n})}let a=t.options||[],o=e=>{if(a.length>0){let t=a.find(t=>String(t.value)===String(e));if(t)return{text:t.label,muted:!1}}return e===r&&i?{text:i,muted:!1}:Rr(e)?{text:`—`,muted:!0}:{text:String(e),muted:!1}};if(Array.isArray(e))return(0,g.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let n,r=!1;if(typeof e==`object`&&e)n=Lr(e)||String(e.id||e._id||`[Object]`);else{let t=o(e);n=t.text,r=t.muted}return(0,g.jsx)(`span`,{className:(0,p.cn)(`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium`,r?`bg-muted/40 text-muted-foreground`:`bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`),children:n},t)})});if(typeof e==`object`&&e)return(0,g.jsx)(`span`,{className:`truncate`,children:Lr(e)||String(e.id||e._id||`[Object]`)});let{text:s,muted:c}=o(e);return(0,g.jsx)(`span`,{className:(0,p.cn)(`truncate`,c&&`text-muted-foreground`),children:s})}function Ci({value:e}){let t=Vr(e);return t==null||t===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function wi({value:e}){if(!e)return(0,g.jsx)(p.EmptyValue,{});if(typeof e!=`object`)return(0,g.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,g.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,g.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`,r=n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return(0,g.jsxs)(p.Avatar,{className:`size-8 border-2 border-white`,title:n,children:[e.image&&(0,g.jsx)(p.AvatarImage,{src:e.image,alt:n}),(0,g.jsx)(p.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:r})]},t)}),e.length>3&&(0,g.jsx)(p.Avatar,{className:`size-8 border-2 border-white`,children:(0,g.jsxs)(p.AvatarFallback,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`,n=t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsxs)(p.Avatar,{className:`size-8`,children:[e.image&&(0,g.jsx)(p.AvatarImage,{src:e.image,alt:t}),(0,g.jsx)(p.AvatarFallback,{className:`bg-blue-500 text-white text-xs`,children:n})]}),(0,g.jsx)(`span`,{className:`truncate`,children:t})]})}var Ti=new Map;function Ei(e,t){Ti.set(e,t)}var Di={phone:`phone`,tel:`phone`,telephone:`phone`,email:`email`,url:`url`,uri:`url`,link:`url`,currency:`currency`,money:`currency`,percent:`percent`,percentage:`percent`},Oi=new Set([`text`,`textarea`,`string`,`longtext`,``]);function ki(e){if(!e)return`text`;if(typeof e==`string`)return e;let t=(e.type||``).toLowerCase(),n=e.format,r=typeof n==`string`?n.toLowerCase():``;return r&&Di[r]&&Oi.has(t)?Di[r]:e.type||`text`}function Ai({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t;if(typeof e==`object`)try{t=JSON.stringify(e)}catch{t=String(e)}else t=String(e);return(0,g.jsx)(`span`,{className:`block max-w-full font-mono text-xs text-gray-600 truncate`,title:t,children:t})}function ji({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t=String(e);return(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,g.jsx)(`span`,{className:`h-3.5 w-3.5 rounded border border-black/10 shrink-0`,style:{backgroundColor:t},"aria-hidden":`true`}),(0,g.jsx)(`span`,{className:`font-mono text-xs`,children:t})]})}var Mi=u.default.lazy(()=>Promise.resolve().then(()=>(Fr(),Nr)));function Ni({value:e}){return e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(u.default.Suspense,{fallback:(0,g.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:String(e).slice(0,80)}),children:(0,g.jsx)(Mi,{value:String(e)})})}function Pi(e){return e.replace(/<\s*(script|style|iframe|object|embed)[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/\son\w+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/(href|src)\s*=\s*("javascript:[^"]*"|'javascript:[^']*')/gi,`$1="#"`)}function Fi({value:e}){return e==null||e===``?(0,g.jsx)(p.EmptyValue,{}):(0,g.jsx)(`div`,{className:`prose prose-sm max-w-none dark:prose-invert break-words`,dangerouslySetInnerHTML:{__html:Pi(String(e))}})}function Ii({value:e}){if(e==null||e===``)return(0,g.jsx)(p.EmptyValue,{});let t,n;if(typeof e==`object`&&!Array.isArray(e)){let r=e;t=typeof r.lat==`number`?r.lat:typeof r.latitude==`number`?r.latitude:void 0,n=typeof r.lng==`number`?r.lng:typeof r.lon==`number`?r.lon:typeof r.longitude==`number`?r.longitude:void 0}else if(Array.isArray(e)&&e.length===2)t=Number(e[0]),n=Number(e[1]);else if(typeof e==`string`){let r=e.split(`,`).map(e=>parseFloat(e.trim()));r.length===2&&!isNaN(r[0])&&!isNaN(r[1])&&([t,n]=r)}return typeof t==`number`&&typeof n==`number`&&!isNaN(t)&&!isNaN(n)?(0,g.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-sm tabular-nums`,children:[(0,g.jsx)(m.MapPin,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),t.toFixed(4),`, `,n.toFixed(4)]}):(0,g.jsx)(Ai,{value:e,field:{}})}function Li(e){return Ti.has(e)?Ti.get(e):{text:Xr,textarea:Xr,markdown:Ni,html:Fi,richtext:Ni,code:Xr,qrcode:Xr,number:Zr,currency:Qr,percent:ei,progress:ei,slider:Zr,rating:Zr,boolean:ni,toggle:ni,date:ri,datetime:ii,time:Xr,select:gi,status:gi,multiselect:gi,radio:gi,checkboxes:gi,tags:gi,lookup:Si,master_detail:Si,tree:Si,email:_i,url:vi,phone:yi,file:bi,video:bi,audio:bi,image:xi,avatar:xi,signature:xi,formula:Ci,summary:Ci,auto_number:Xr,user:wi,owner:wi,password:()=>(0,g.jsx)(`span`,{children:`••••••`}),secret:()=>(0,g.jsx)(`span`,{children:`••••••`}),location:Ii,geolocation:Ii,address:Ai,color:ji,json:Ai,object:Ai,composite:Ai,record:Ai,repeater:({value:e})=>{let t=Array.isArray(e)?e.length:0;return t>0?(0,g.jsxs)(`span`,{className:`text-gray-500 italic`,children:[t,` 项`]}):(0,g.jsx)(p.EmptyValue,{})},vector:()=>(0,g.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,g.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||Xr}Ei(`lookup`,Si),Ei(`master_detail`,Si),Ei(`select`,gi),Ei(`status`,gi),Ei(`user`,wi),Ei(`owner`,wi),qe(Li);function Ri(e){return{text:`field:text`,textarea:`field:textarea`,markdown:`field:markdown`,html:`field:html`,richtext:`field:richtext`,secret:`field:password`,number:`field:number`,currency:`field:currency`,percent:`field:percent`,slider:`field:slider`,progress:`field:slider`,rating:`field:rating`,date:`field:date`,datetime:`field:datetime`,time:`field:time`,boolean:`field:boolean`,toggle:`field:boolean`,select:`field:select`,multiselect:`field:multiselect`,radio:`field:radio`,checkboxes:`field:checkboxes`,tags:`field:tags`,lookup:`field:lookup`,master_detail:`field:master_detail`,tree:`field:lookup`,user:`field:user`,owner:`field:owner`,email:`field:email`,phone:`field:phone`,url:`field:url`,file:`field:file`,image:`field:image`,avatar:`field:avatar`,video:`field:file`,audio:`field:file`,signature:`field:signature`,password:`field:password`,location:`field:location`,geolocation:`field:geolocation`,address:`field:address`,color:`field:color`,code:`field:code`,json:`field:code`,qrcode:`field:qrcode`,vector:`field:vector`,object:`field:object`,composite:`field:object`,record:`field:object`,repeater:`field:grid`,formula:`field:formula`,summary:`field:summary`,auto_number:`field:auto_number`}[e]||`field:text`}function zi(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 Bi(e){let t={};return e.required&&(t.required=typeof e.required_message!=`string`||e.required_message),e.min_length&&(t.minLength={value:e.min_length,message:typeof e.min_length_message==`string`?e.min_length_message:void 0,messageKey:`validation.minLength`}),e.max_length&&(t.maxLength={value:e.max_length,message:typeof e.max_length_message==`string`?e.max_length_message:void 0,messageKey:`validation.maxLength`}),e.min!==void 0&&(t.min={value:e.min,message:typeof e.min_message==`string`?e.min_message:void 0,messageKey:`validation.min`}),e.max!==void 0&&(t.max={value:e.max,message:typeof e.max_message==`string`?e.max_message:void 0,messageKey:`validation.max`}),e.pattern&&(t.pattern={value:typeof e.pattern==`string`?new RegExp(e.pattern):e.pattern,message:typeof e.pattern_message==`string`?e.pattern_message:void 0,messageKey:`validation.pattern`}),e.type===`email`&&(t.pattern={value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:void 0,messageKey:`validation.email`}),e.type===`url`&&(t.pattern={value:/^https?:\/\/.+/,message:void 0,messageKey:`validation.url`}),e.validate&&(t.validate=e.validate),Object.keys(t).length>0?t:void 0}function Vi(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=>Vi(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>Vi(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,g.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,g.jsx)(`label`,{htmlFor:t.id,className:t.required?`after:content-['*'] after:ml-0.5 after:text-red-500`:``,children:t.label}),(0,g.jsx)(e,{value:a,onChange:c,field:s,readonly:l,className:n}),t?.description&&(0,g.jsx)(`p`,{className:`text-sm text-gray-500`,children:t.description})]})};return t.displayName=`FieldRenderer(${e.displayName||e.name||`Component`})`,t}var Hi={text:()=>Promise.resolve().then(()=>(C(),x)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>(ce(),se)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>(E(),w)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>(O(),ee)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>(N(),j)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>(re(),F)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>(ht(),pt)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>(vt(),gt)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>(R(),ie)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>(V(),z)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>(W(),H)).then(e=>({default:e.UrlField})),multiselect:()=>Promise.resolve().then(()=>(Yn(),qn)).then(e=>({default:e.MultiSelectField})),radio:()=>Promise.resolve().then(()=>(Qn(),Xn)).then(e=>({default:e.RadioField})),checkboxes:()=>Promise.resolve().then(()=>(tr(),$n)).then(e=>({default:e.CheckboxesField})),tags:()=>Promise.resolve().then(()=>(ir(),nr)).then(e=>({default:e.TagsField})),currency:()=>Promise.resolve().then(()=>(oe(),K)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>(xt(),yt)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>(wt(),St)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),richtext:()=>Promise.resolve().then(()=>(le(),Y)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>(ct(),Ze)).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>(ct(),Ze)).then(e=>({default:e.LookupField})),file:()=>Promise.resolve().then(()=>(Dt(),Tt)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>(Pt(),jt)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>(Lt(),Ft)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>(Bt(),Rt)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>(Ut(),Vt)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>(Kt(),Wt)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>(Xt(),qt)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>(Xt(),qt)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>($t(),Zt)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>(nn(),en)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>(yn(),rn)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>(Sn(),bn)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>(Tn(),Cn)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>(On(),En)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>(jn(),kn)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>(Pn(),Mn)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>(Ln(),Fn)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>(Bn(),Rn)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>(Un(),Vn)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>(Kn(),Wn)).then(e=>({default:e.QRCodeField})),"object-ref":()=>Promise.resolve().then(()=>(pr(),dr)).then(e=>({default:e.ObjectRefField})),"filter-condition":()=>Promise.resolve().then(()=>(Dr(),mr)).then(e=>({default:e.FilterConditionField})),"recipient-picker":()=>Promise.resolve().then(()=>(jr(),Or)).then(e=>({default:e.RecipientPickerField}))},Ui=Object.freeze(Object.keys(Hi)),Wi=new Set([`text`,`html`,`image`,`avatar`,`grid`,`textarea`,`select`,`email`,`password`,`slider`,`markdown`,`time`,`address`,`object-ref`,`filter-condition`,`recipient-picker`]);function Gi(e){let t=Hi[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=u.default.lazy(t);d.ComponentRegistry.register(e,n,{namespace:`field`,skipFallback:Wi.has(e)})}function Ki(){Object.keys(Hi).forEach(e=>{Gi(e)})}function qi(){d.ComponentRegistry.register(`text`,$(S),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`textarea`,$(J),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`number`,$(T),{namespace:`field`}),d.ComponentRegistry.register(`boolean`,$(D),{namespace:`field`}),d.ComponentRegistry.register(`select`,$(M),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`date`,$(I),{namespace:`field`}),d.ComponentRegistry.register(`datetime`,$(mt),{namespace:`field`}),d.ComponentRegistry.register(`time`,$(_t),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`email`,$(L),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`phone`,$(B),{namespace:`field`}),d.ComponentRegistry.register(`url`,$(U),{namespace:`field`}),d.ComponentRegistry.register(`currency`,$(q),{namespace:`field`}),d.ComponentRegistry.register(`percent`,$(bt),{namespace:`field`}),d.ComponentRegistry.register(`password`,$(Ct),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`markdown`,$(X),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`html`,$(X),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`lookup`,$(rt),{namespace:`field`}),d.ComponentRegistry.register(`capability-multiselect`,ft,{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`master_detail`,$(rt),{namespace:`field`}),d.ComponentRegistry.register(`file`,$(Et),{namespace:`field`}),d.ComponentRegistry.register(`image`,$(Mt),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`location`,$(It),{namespace:`field`}),d.ComponentRegistry.register(`formula`,$(zt),{namespace:`field`}),d.ComponentRegistry.register(`summary`,$(Ht),{namespace:`field`}),d.ComponentRegistry.register(`auto_number`,$(Gt),{namespace:`field`}),d.ComponentRegistry.register(`user`,$(Yt),{namespace:`field`}),d.ComponentRegistry.register(`owner`,$(Yt),{namespace:`field`}),d.ComponentRegistry.register(`object`,$(Qt),{namespace:`field`}),d.ComponentRegistry.register(`vector`,$(tn),{namespace:`field`}),d.ComponentRegistry.register(`grid`,$(mn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`color`,$(xn),{namespace:`field`}),d.ComponentRegistry.register(`slider`,$(wn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`rating`,$(Dn),{namespace:`field`}),d.ComponentRegistry.register(`code`,$(An),{namespace:`field`}),d.ComponentRegistry.register(`avatar`,$(Nn),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`address`,$(In),{namespace:`field`,skipFallback:!0}),d.ComponentRegistry.register(`geolocation`,$(zn),{namespace:`field`}),d.ComponentRegistry.register(`signature`,$(Hn),{namespace:`field`}),d.ComponentRegistry.register(`qrcode`,$(Gn),{namespace:`field`})}Ki(),exports.AddressField=In,exports.AutoNumberField=Gt,exports.AvatarField=Nn,exports.BooleanCellRenderer=ni,exports.BooleanField=D,exports.CapabilityMultiSelectField=ft,exports.CheckboxesField=er,exports.CodeField=An,exports.ColorField=xn,exports.ColorSwatchCellRenderer=ji,exports.CurrencyCellRenderer=Qr,exports.CurrencyField=q,exports.DISCRETE_EDIT_TYPES=sr,exports.DateCellRenderer=ri,exports.DateField=I,exports.DateTimeCellRenderer=ii,exports.DateTimeField=mt,exports.EmailCellRenderer=_i,exports.EmailField=L,exports.FORM_FIELD_TYPES=Ui,exports.FieldEditWidget=ur,exports.FileCellRenderer=bi,exports.FileField=Et,exports.FilterConditionField=wr,exports.FormulaCellRenderer=Ci,exports.FormulaField=zt,exports.GeolocationField=zn,exports.GridField=mn,exports.HtmlCellRenderer=Fi,exports.INLINE_EXCLUDED_FIELD_TYPES=or,exports.ImageCellRenderer=xi,exports.ImageCropperDialog=kt,exports.ImageField=Mt,exports.JsonCellRenderer=Ai,exports.LineItemsField=vn,exports.LocationCellRenderer=Ii,exports.LocationField=It,exports.LookupCellRenderer=Si,exports.LookupField=rt,exports.MarkdownCellRenderer=Ni,exports.MasterDetailField=Mr,exports.MultiSelectField=Jn,exports.NumberCellRenderer=Zr,exports.NumberField=T,exports.ObjectField=Qt,exports.ObjectRefField=fr,exports.PasswordField=Ct,exports.PercentCellRenderer=ei,exports.PercentField=bt,exports.PhoneCellRenderer=yi,exports.PhoneField=B,exports.QRCodeField=Gn,exports.RadioField=Zn,exports.RatingField=Dn,exports.RecipientPickerField=kr,exports.RecordPickerDialog=ge,exports.RichTextField=X,exports.SelectCellRenderer=gi,exports.SelectField=M,exports.SignatureField=Hn,exports.SliderField=wn,exports.SummaryField=Ht,exports.TagsField=rr,exports.TextAreaField=J,exports.TextCellRenderer=Xr,exports.TextField=S,exports.TimeField=_t,exports.UrlCellRenderer=vi,exports.UrlField=U,exports.UserCellRenderer=wi,exports.UserField=Yt,exports.VectorField=tn,exports.buildValidationRules=Bi,exports.coerceToSafeValue=Vr,exports.computeRow=un,exports.evalArith=cn,exports.evaluateCondition=Vi,exports.formatCompactCurrency=Ur,exports.formatCurrency=Hr,exports.formatDate=Jr,exports.formatDateTime=Yr,exports.formatFileSize=zi,exports.formatNumber=Wr,exports.formatPercent=Gr,exports.formatRelativeDate=qr,exports.getBadgeColorClasses=fi,exports.getCellRenderer=Li,exports.getSemanticColorName=pi,exports.getSemanticHex=hi,exports.hasFieldEditWidget=cr,exports.humanizeLabel=Kr,exports.isLikelyOpaqueId=Rr,exports.lookupAutofillPatch=ln,exports.lookupFiltersToRecord=me,exports.mapFieldTypeToFormType=Ri,exports.parseCapabilityNames=lt,exports.pickRecordDisplayName=Lr,exports.registerAllFields=Ki,exports.registerField=Gi,exports.registerFieldRenderer=Ei,exports.registerFields=qi,exports.resolveCellRendererType=ki,Object.defineProperty(exports,"resolveFieldCurrency",{enumerable:!0,get:function(){return f.resolveFieldCurrency}}),exports.sumColumn=pn;
|