@object-ui/fields 4.0.4 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/index.cjs +3 -3
- package/dist/index.js +1928 -908
- package/package.json +7 -7
- package/dist/ImageCropperDialog-CK1apFXU.cjs +0 -1
- package/dist/ImageCropperDialog-DNvktnyM.js +0 -147
- package/dist/LookupField-CRKvDPFG.cjs +0 -1
- package/dist/LookupField-XRxsGgLS.js +0 -938
- package/dist/chunk-D-qHiVGv.cjs +0 -1
- package/dist/rolldown-runtime-CAFD8bLK.js +0 -11
- package/dist/useFieldTranslation-BYPwtuNZ.cjs +0 -1
- package/dist/useFieldTranslation-Bv3oUVgb.js +0 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/fields",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"description": "Field renderers and registry for Object UI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"clsx": "^2.1.1",
|
|
28
28
|
"lucide-react": "^1.14.0",
|
|
29
29
|
"tailwind-merge": "^3.5.0",
|
|
30
|
-
"@object-ui/components": "4.0.
|
|
31
|
-
"@object-ui/core": "4.0.
|
|
32
|
-
"@object-ui/i18n": "4.0.
|
|
33
|
-
"@object-ui/providers": "4.0.
|
|
34
|
-
"@object-ui/react": "4.0.
|
|
35
|
-
"@object-ui/types": "4.0.
|
|
30
|
+
"@object-ui/components": "4.0.5",
|
|
31
|
+
"@object-ui/core": "4.0.5",
|
|
32
|
+
"@object-ui/i18n": "4.0.5",
|
|
33
|
+
"@object-ui/providers": "4.0.5",
|
|
34
|
+
"@object-ui/react": "4.0.5",
|
|
35
|
+
"@object-ui/types": "4.0.5"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-D-qHiVGv.cjs`);let t=require(`react`);t=e.n(t,1);let n=require(`@object-ui/components`),r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a=e.t({ImageCropperDialog:()=>o}),o=({open:e,onOpenChange:a,src:o,outputType:s=`image/png`,outputName:c=`cropped.png`,onConfirm:l})=>{let u=(0,t.useRef)(null),d=(0,t.useRef)(null),[f,p]=(0,t.useState)(0),[m,h]=(0,t.useState)({x:0,y:0,width:100,height:100}),[g,_]=(0,t.useState)(null),[v,y]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(!e||!o)return;y(!1);let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>{d.current=t;let e=t.naturalWidth*.8,n=t.naturalHeight*.8;h({x:(t.naturalWidth-e)/2,y:(t.naturalHeight-n)/2,width:e,height:n}),p(0),y(!0)},t.onerror=()=>y(!1),t.src=o},[e,o]),(0,t.useEffect)(()=>{if(!v||!d.current||!u.current)return;let e=d.current,t=u.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(f*Math.PI/180);let a=f%180==0?480:i,o=f%180==0?i:480;n.drawImage(e,-a/2,-o/2,a,o),n.restore();let s=m.x*r,c=m.y*r,l=m.width*r,p=m.height*r;n.fillStyle=`rgba(0,0,0,0.45)`,n.fillRect(0,0,480,c),n.fillRect(0,c+p,480,i-c-p),n.fillRect(0,c,s,p),n.fillRect(s+l,c,480-s-l,p),n.strokeStyle=`#3b82f6`,n.lineWidth=2,n.strokeRect(s,c,l,p)},[v,m,f]);let b=(0,t.useCallback)(e=>{if(!d.current||!u.current)return;let t=u.current.getBoundingClientRect(),n=d.current.naturalWidth/t.width;_({ox:(e.clientX-t.left)*n,oy:(e.clientY-t.top)*n,cx:m.x,cy:m.y}),e.target.setPointerCapture(e.pointerId)},[m]),x=(0,t.useCallback)(e=>{if(!g||!d.current||!u.current)return;let t=u.current.getBoundingClientRect(),n=d.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-g.ox,i=(e.clientY-t.top)*n-g.oy,a=Math.max(0,Math.min(g.cx+r,d.current.naturalWidth-m.width)),o=Math.max(0,Math.min(g.cy+i,d.current.naturalHeight-m.height));h(e=>({...e,x:a,y:o}))},[g,m.width,m.height]),S=(0,t.useCallback)(()=>_(null),[]),C=(0,t.useCallback)(()=>p(e=>(e+90)%360),[]),w=(0,t.useCallback)(async()=>{if(!d.current)return;let e=d.current,t=document.createElement(`canvas`),n=m.width,r=m.height;t.width=f%180==0?n:r,t.height=f%180==0?r:n;let i=t.getContext(`2d`);if(!i)return;i.save(),i.translate(t.width/2,t.height/2),i.rotate(f*Math.PI/180),i.drawImage(e,m.x,m.y,n,r,-n/2,-r/2,n,r),i.restore();let o=await new Promise(e=>t.toBlob(e,s));o&&(l(o,c),a(!1))},[m,f,c,s,l,a]);return(0,i.jsx)(n.Dialog,{open:e,onOpenChange:a,children:(0,i.jsxs)(n.DialogContent,{className:`max-w-xl`,children:[(0,i.jsxs)(n.DialogHeader,{children:[(0,i.jsx)(n.DialogTitle,{children:`Crop & rotate image`}),(0,i.jsx)(n.DialogDescription,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[v?(0,i.jsx)(`canvas`,{ref:u,"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,i.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,i.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{children:[`Crop: `,Math.round(m.width),` × `,Math.round(m.height),` px`]}),(0,i.jsxs)(`span`,{children:[`Rotation: `,f,`°`]})]})]}),(0,i.jsxs)(n.DialogFooter,{className:`flex justify-between sm:justify-between`,children:[(0,i.jsxs)(n.Button,{type:`button`,variant:`outline`,onClick:C,"data-testid":`image-cropper-rotate`,children:[(0,i.jsx)(r.RotateCw,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[(0,i.jsx)(n.Button,{type:`button`,variant:`ghost`,onClick:()=>a(!1),children:`Cancel`}),(0,i.jsxs)(n.Button,{type:`button`,onClick:w,disabled:!v,"data-testid":`image-cropper-confirm`,children:[(0,i.jsx)(r.Crop,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
|
|
2
|
-
import { useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
|
|
3
|
-
import { Button as a, Dialog as o, DialogContent as s, DialogDescription as c, DialogFooter as l, DialogHeader as u, DialogTitle as d } from "@object-ui/components";
|
|
4
|
-
import { Crop as f, RotateCw as p } from "lucide-react";
|
|
5
|
-
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
6
|
-
//#region src/widgets/ImageCropperDialog.tsx
|
|
7
|
-
var g = /* @__PURE__ */ e({ ImageCropperDialog: () => _ }), _ = ({ open: e, onOpenChange: g, src: _, outputType: v = "image/png", outputName: y = "cropped.png", onConfirm: b }) => {
|
|
8
|
-
let x = r(null), S = r(null), [C, w] = i(0), [T, E] = i({
|
|
9
|
-
x: 0,
|
|
10
|
-
y: 0,
|
|
11
|
-
width: 100,
|
|
12
|
-
height: 100
|
|
13
|
-
}), [D, O] = i(null), [k, A] = i(!1);
|
|
14
|
-
n(() => {
|
|
15
|
-
if (!e || !_) return;
|
|
16
|
-
A(!1);
|
|
17
|
-
let t = new Image();
|
|
18
|
-
t.crossOrigin = "anonymous", t.onload = () => {
|
|
19
|
-
S.current = t;
|
|
20
|
-
let e = t.naturalWidth * .8, n = t.naturalHeight * .8;
|
|
21
|
-
E({
|
|
22
|
-
x: (t.naturalWidth - e) / 2,
|
|
23
|
-
y: (t.naturalHeight - n) / 2,
|
|
24
|
-
width: e,
|
|
25
|
-
height: n
|
|
26
|
-
}), w(0), A(!0);
|
|
27
|
-
}, t.onerror = () => A(!1), t.src = _;
|
|
28
|
-
}, [e, _]), n(() => {
|
|
29
|
-
if (!k || !S.current || !x.current) return;
|
|
30
|
-
let e = S.current, t = x.current, n = t.getContext("2d");
|
|
31
|
-
if (!n) return;
|
|
32
|
-
let r = 480 / e.naturalWidth, i = e.naturalHeight * r;
|
|
33
|
-
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);
|
|
34
|
-
let a = C % 180 == 0 ? 480 : i, o = C % 180 == 0 ? i : 480;
|
|
35
|
-
n.drawImage(e, -a / 2, -o / 2, a, o), n.restore();
|
|
36
|
-
let s = T.x * r, c = T.y * r, l = T.width * r, u = T.height * r;
|
|
37
|
-
n.fillStyle = "rgba(0,0,0,0.45)", n.fillRect(0, 0, 480, c), n.fillRect(0, c + u, 480, i - c - u), n.fillRect(0, c, s, u), n.fillRect(s + l, c, 480 - s - l, u), n.strokeStyle = "#3b82f6", n.lineWidth = 2, n.strokeRect(s, c, l, u);
|
|
38
|
-
}, [
|
|
39
|
-
k,
|
|
40
|
-
T,
|
|
41
|
-
C
|
|
42
|
-
]);
|
|
43
|
-
let j = t((e) => {
|
|
44
|
-
if (!S.current || !x.current) return;
|
|
45
|
-
let t = x.current.getBoundingClientRect(), n = S.current.naturalWidth / t.width;
|
|
46
|
-
O({
|
|
47
|
-
ox: (e.clientX - t.left) * n,
|
|
48
|
-
oy: (e.clientY - t.top) * n,
|
|
49
|
-
cx: T.x,
|
|
50
|
-
cy: T.y
|
|
51
|
-
}), e.target.setPointerCapture(e.pointerId);
|
|
52
|
-
}, [T]), M = t((e) => {
|
|
53
|
-
if (!D || !S.current || !x.current) return;
|
|
54
|
-
let t = x.current.getBoundingClientRect(), n = S.current.naturalWidth / t.width, r = (e.clientX - t.left) * n - D.ox, i = (e.clientY - t.top) * n - D.oy, a = Math.max(0, Math.min(D.cx + r, S.current.naturalWidth - T.width)), o = Math.max(0, Math.min(D.cy + i, S.current.naturalHeight - T.height));
|
|
55
|
-
E((e) => ({
|
|
56
|
-
...e,
|
|
57
|
-
x: a,
|
|
58
|
-
y: o
|
|
59
|
-
}));
|
|
60
|
-
}, [
|
|
61
|
-
D,
|
|
62
|
-
T.width,
|
|
63
|
-
T.height
|
|
64
|
-
]), N = t(() => O(null), []), P = t(() => w((e) => (e + 90) % 360), []), F = t(async () => {
|
|
65
|
-
if (!S.current) return;
|
|
66
|
-
let e = S.current, t = document.createElement("canvas"), n = T.width, r = T.height;
|
|
67
|
-
t.width = C % 180 == 0 ? n : r, t.height = C % 180 == 0 ? r : n;
|
|
68
|
-
let i = t.getContext("2d");
|
|
69
|
-
if (!i) return;
|
|
70
|
-
i.save(), i.translate(t.width / 2, t.height / 2), i.rotate(C * Math.PI / 180), i.drawImage(e, T.x, T.y, n, r, -n / 2, -r / 2, n, r), i.restore();
|
|
71
|
-
let a = await new Promise((e) => t.toBlob(e, v));
|
|
72
|
-
a && (b(a, y), g(!1));
|
|
73
|
-
}, [
|
|
74
|
-
T,
|
|
75
|
-
C,
|
|
76
|
-
y,
|
|
77
|
-
v,
|
|
78
|
-
b,
|
|
79
|
-
g
|
|
80
|
-
]);
|
|
81
|
-
return /* @__PURE__ */ m(o, {
|
|
82
|
-
open: e,
|
|
83
|
-
onOpenChange: g,
|
|
84
|
-
children: /* @__PURE__ */ h(s, {
|
|
85
|
-
className: "max-w-xl",
|
|
86
|
-
children: [
|
|
87
|
-
/* @__PURE__ */ h(u, { children: [/* @__PURE__ */ m(d, { children: "Crop & rotate image" }), /* @__PURE__ */ m(c, { children: "Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments." })] }),
|
|
88
|
-
/* @__PURE__ */ h("div", {
|
|
89
|
-
className: "flex flex-col items-center gap-3",
|
|
90
|
-
children: [k ? /* @__PURE__ */ m("canvas", {
|
|
91
|
-
ref: x,
|
|
92
|
-
"data-testid": "image-cropper-canvas",
|
|
93
|
-
role: "img",
|
|
94
|
-
"aria-label": "Image crop preview",
|
|
95
|
-
className: "border rounded-md cursor-move touch-none max-w-full",
|
|
96
|
-
onPointerDown: j,
|
|
97
|
-
onPointerMove: M,
|
|
98
|
-
onPointerUp: N,
|
|
99
|
-
onPointerCancel: N
|
|
100
|
-
}) : /* @__PURE__ */ m("div", {
|
|
101
|
-
className: "flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground",
|
|
102
|
-
children: "Loading image…"
|
|
103
|
-
}), /* @__PURE__ */ h("div", {
|
|
104
|
-
className: "flex w-full items-center justify-between text-xs text-muted-foreground",
|
|
105
|
-
children: [/* @__PURE__ */ h("span", { children: [
|
|
106
|
-
"Crop: ",
|
|
107
|
-
Math.round(T.width),
|
|
108
|
-
" × ",
|
|
109
|
-
Math.round(T.height),
|
|
110
|
-
" px"
|
|
111
|
-
] }), /* @__PURE__ */ h("span", { children: [
|
|
112
|
-
"Rotation: ",
|
|
113
|
-
C,
|
|
114
|
-
"°"
|
|
115
|
-
] })]
|
|
116
|
-
})]
|
|
117
|
-
}),
|
|
118
|
-
/* @__PURE__ */ h(l, {
|
|
119
|
-
className: "flex justify-between sm:justify-between",
|
|
120
|
-
children: [/* @__PURE__ */ h(a, {
|
|
121
|
-
type: "button",
|
|
122
|
-
variant: "outline",
|
|
123
|
-
onClick: P,
|
|
124
|
-
"data-testid": "image-cropper-rotate",
|
|
125
|
-
children: [/* @__PURE__ */ m(p, { className: "size-4 mr-2" }), "Rotate 90°"]
|
|
126
|
-
}), /* @__PURE__ */ h("div", {
|
|
127
|
-
className: "flex gap-2",
|
|
128
|
-
children: [/* @__PURE__ */ m(a, {
|
|
129
|
-
type: "button",
|
|
130
|
-
variant: "ghost",
|
|
131
|
-
onClick: () => g(!1),
|
|
132
|
-
children: "Cancel"
|
|
133
|
-
}), /* @__PURE__ */ h(a, {
|
|
134
|
-
type: "button",
|
|
135
|
-
onClick: F,
|
|
136
|
-
disabled: !k,
|
|
137
|
-
"data-testid": "image-cropper-confirm",
|
|
138
|
-
children: [/* @__PURE__ */ m(f, { className: "size-4 mr-2" }), "Apply crop"]
|
|
139
|
-
})]
|
|
140
|
-
})]
|
|
141
|
-
})
|
|
142
|
-
]
|
|
143
|
-
})
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
|
-
//#endregion
|
|
147
|
-
export { g as n, _ as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./useFieldTranslation-BYPwtuNZ.cjs`);let n=require(`react`);n=e.n(n,1);let r=require(`@object-ui/components`),i=require(`lucide-react`),a=require(`react/jsx-runtime`),o=require(`@object-ui/react`);var ee=10,te=60,s=5;function c(e){return typeof e==`string`?{field:e}:e}function l(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function u(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 ne(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 d({open:e,onOpenChange:t,title:o=`Select Record`,multiple:d=!1,dataSource:f,objectName:p,columns:re,displayField:m=`name`,idField:ie=`id`,pageSize:h=ee,value:g,onSelect:ae,onSelectRecords:_,lookupFilters:v,cellRenderer:y,filterColumns:b,renderFilterBar:x,renderGrid:oe}){let[S,se]=(0,n.useState)([]),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(null),[D,O]=(0,n.useState)(0),[k,ce]=(0,n.useState)(``),[A,j]=(0,n.useState)(1),M=(0,n.useRef)(null),[N,P]=(0,n.useState)(null),[F,le]=(0,n.useState)(`asc`),[I,L]=(0,n.useState)(new Set),R=(0,n.useRef)(new Map),[z,B]=(0,n.useState)(-1),ue=(0,n.useRef)(null),[V,H]=(0,n.useState)(!1),[U,W]=(0,n.useState)({}),[G,de]=(0,n.useState)({}),K=(0,n.useRef)(null),[q,J]=(0,n.useState)(``),Y=(0,n.useMemo)(()=>re&&re.length>0?re.map(c):[{field:m,label:l(m)}],[re,m]),X=(0,n.useMemo)(()=>{if(b&&b.length>0)return b;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:l(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}})}:{}}})},[b,v]),fe=(0,n.useMemo)(()=>{let e=v?.length?u(v):{},t=X?.length?ne(U,X):{},n={...e,...t};return Object.keys(n).length>0?n:void 0},[v,X,U]),Z=Math.max(1,Math.ceil(D/h)),Q=(0,n.useCallback)(async(e,t=1,n,r)=>{if(!(!f||!p)){w(!0),E(null);try{let i={$top:h,$skip:(t-1)*h};e&&e.trim()&&(i.$search=e.trim()),n&&(i.$orderby={[n.field]:n.direction});let a=r===void 0?fe:r;a&&Object.keys(a).length>0&&(i.$filter=a);let o=await f.find(p,i),ee=o?.data??o??[];se(ee),O(o?.total??ee.length),B(-1)}catch(e){E(e instanceof Error?e.message:String(e)),se([])}finally{w(!1)}}},[f,p,h,fe]),pe=(0,n.useMemo)(()=>N?{field:N,direction:F}:null,[N,F]);(0,n.useEffect)(()=>{e||(ce(``),j(1),E(null),se([]),P(null),le(`asc`),B(-1),H(!1),W({}),de({}),J(``),L(new Set(d&&Array.isArray(g)?g:[])),R.current.clear())},[e]),(0,n.useEffect)(()=>{e&&Q(k||void 0,A,pe)},[e,A,pe,fe]),(0,n.useEffect)(()=>{e&&d&&L(new Set(Array.isArray(g)?g:[]))},[e,d,g]);let me=(0,n.useCallback)(e=>{ce(e),j(1),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{Q(e||void 0,1,pe)},300)},[Q,pe]);(0,n.useEffect)(()=>()=>{M.current&&clearTimeout(M.current)},[]);let he=(0,n.useCallback)(e=>{P(t=>t===e?(le(e=>e===`asc`?`desc`:`asc`),e):(le(`asc`),e)),j(1)},[]),ge=(0,n.useCallback)(e=>e[ie]??e.id??e._id,[ie]),_e=(0,n.useCallback)(e=>{let t=ge(e);return d?I.has(t):g===t},[d,g,I,ge]),ve=(0,n.useCallback)(e=>{let n=ge(e);d?L(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),R.current.delete(n)):(r.add(n),R.current.set(n,e)),r}):(ae(n),_?.([e]),t(!1))},[d,ge,ae,_,t]),ye=(0,n.useCallback)(()=>{let e=Array.from(I);ae(e);let n=e.map(e=>R.current.get(e)).filter(Boolean);_?.(n),t(!1)},[I,ae,_,t]),be=(0,n.useCallback)(()=>{j(e=>Math.max(1,e-1))},[]),xe=(0,n.useCallback)(()=>{j(e=>Math.min(Z,e+1))},[Z]),Se=(0,n.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(q,10);!isNaN(t)&&t>=1&&t<=Z&&j(t),J(``)},[q,Z]),Ce=(0,n.useCallback)(e=>{S.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),B(e=>Math.min(e+1,S.length-1))):e.key===`ArrowUp`?(e.preventDefault(),B(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),z>=0&&z<S.length&&ve(S[z])))},[S,z,ve]);(0,n.useEffect)(()=>{if(z>=0&&ue.current){let e=ue.current.querySelector(`[data-row-index="${z}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[z]);let we=(0,n.useCallback)((e,t)=>{let n=e[t.field];if(t.type&&y){let e=y(t.type);if(e)return(0,a.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)},[y]),Te=(0,n.useCallback)(e=>N===e?F===`asc`?(0,a.jsx)(i.ArrowUp,{className:`ml-1 size-3`}):(0,a.jsx)(i.ArrowDown,{className:`ml-1 size-3`}):(0,a.jsx)(i.ArrowUpDown,{className:`ml-1 size-3 opacity-40`}),[N,F]),Ee=(0,n.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),K.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!K.current)return;let t=e.clientX-K.current.startX,n=Math.max(te,K.current.startWidth+t);de(e=>({...e,[K.current.field]:n}))},i=()=>{K.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),$=(0,n.useCallback)((e,t)=>{W(n=>({...n,[e]:t})),j(1)},[]),De=(0,n.useCallback)(()=>{W({}),j(1)},[]),Oe=(0,n.useMemo)(()=>Object.values(U).filter(e=>e!=null&&e!==``).length,[U]),ke=(0,n.useCallback)(e=>{let t=U[e.field],n=e.label||l(e.field);switch(e.type){case`select`:return(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,a.jsxs)(r.Select,{value:t==null?``:String(t),onValueChange:t=>$(e.field,t),children:[(0,a.jsx)(r.SelectTrigger,{className:`h-8 text-xs`,children:(0,a.jsx)(r.SelectValue,{placeholder:`Filter ${n}`})}),(0,a.jsx)(r.SelectContent,{children:e.options?.map(e=>(0,a.jsx)(r.SelectItem,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,a.jsx)(r.Input,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>{let n=t.target.value;$(e.field,n===``?``:Number(n))}})]});case`date`:return(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,a.jsx)(r.Input,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>$(e.field,t.target.value)})]});case`boolean`:return(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,a.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,a.jsx)(r.Checkbox,{checked:!!t,onCheckedChange:t=>$(e.field,!!t)}),(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Yes`})]})]});default:return(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:n}),(0,a.jsx)(r.Input,{className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>$(e.field,t.target.value)})]})}},[U,$]),Ae=(0,n.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,a.jsx)(r.Dialog,{open:e,onOpenChange:t,children:(0,a.jsxs)(r.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,a.jsx)(r.DialogHeader,{children:(0,a.jsxs)(r.DialogTitle,{children:[o,d&&(0,a.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,a.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,a.jsx)(i.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,a.jsx)(r.Input,{placeholder:`Search...`,value:k,onChange:e=>me(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),C&&(0,a.jsx)(i.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`})]}),X&&X.length>0&&(0,a.jsx)(`div`,{className:`py-2`,children:x?(0,a.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:x({filterColumns:X,values:U,onChange:$,onClear:De,activeCount:Oe})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,a.jsxs)(r.Button,{type:`button`,variant:Oe>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>H(e=>!e),children:[(0,a.jsx)(i.SlidersHorizontal,{className:`size-3.5`}),`Filters`,Oe>0&&(0,a.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:Oe})]}),Oe>0&&(0,a.jsxs)(r.Button,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:De,children:[(0,a.jsx)(i.X,{className:`size-3`}),`Clear`]})]}),V&&(0,a.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:X.map(e=>(0,a.jsx)(`div`,{children:ke(e)},e.field))})]})}),T&&(0,a.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,a.jsx)(i.AlertCircle,{className:`size-5 text-destructive`}),(0,a.jsx)(`p`,{className:`text-sm text-destructive`,children:T}),(0,a.jsx)(r.Button,{variant:`outline`,size:`sm`,onClick:()=>Q(k||void 0,A,pe),type:`button`,children:`Retry`})]}),oe?(0,a.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:oe({columns:Y,records:S,loading:C,totalCount:D,currentPage:A,pageSize:h,sortField:N,sortDirection:F,onSort:he,onPageChange:j,onRowClick:ve,isSelected:_e,multiple:d,idField:ie,cellRenderer:y})}):(0,a.jsxs)(a.Fragment,{children:[C&&S.length===0&&!T&&(0,a.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,a.jsxs)(r.Table,{children:[(0,a.jsx)(r.TableHeader,{children:(0,a.jsxs)(r.TableRow,{className:`bg-muted/40`,children:[d&&(0,a.jsx)(r.TableHead,{className:`w-10`}),Y.map(e=>(0,a.jsx)(r.TableHead,{children:(0,a.jsx)(r.Skeleton,{className:`h-4 w-20`})},e.field))]})}),(0,a.jsx)(r.TableBody,{children:Array.from({length:s},(e,t)=>(0,a.jsxs)(r.TableRow,{children:[d&&(0,a.jsx)(r.TableCell,{className:`w-10`,children:(0,a.jsx)(r.Skeleton,{className:`size-4 rounded`})}),Y.map(e=>(0,a.jsx)(r.TableCell,{children:(0,a.jsx)(r.Skeleton,{className:`h-4 w-full`})},e.field))]},t))})]})}),!C&&!T&&S.length===0&&(0,a.jsx)(`div`,{className:`py-8 text-center`,children:(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No records found`})}),!T&&S.length>0&&(0,a.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,tabIndex:0,onKeyDown:Ce,role:`grid`,"aria-label":`Records`,children:[C&&(0,a.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,a.jsx)(i.Loader2,{className:`size-6 animate-spin text-muted-foreground`})}),(0,a.jsxs)(r.Table,{style:Object.keys(G).length>0?{tableLayout:`fixed`}:void 0,children:[(0,a.jsx)(r.TableHeader,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,a.jsxs)(r.TableRow,{children:[d&&(0,a.jsx)(r.TableHead,{className:`w-10`}),Y.map(e=>{let t=G[e.field];return(0,a.jsxs)(r.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:()=>he(e.field),"aria-sort":N===e.field?F===`asc`?`ascending`:`descending`:`none`,children:[(0,a.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||l(e.field),Te(e.field)]}),(0,a.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();Ee(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,a.jsx)(r.TableBody,{ref:ue,children:S.map((e,t)=>{let n=ge(e),o=_e(e),ee=t===z;return(0,a.jsxs)(r.TableRow,{"data-row-index":t,className:(0,r.cn)(`cursor-pointer transition-colors`,Ae(o,t),ee&&`ring-2 ring-primary ring-inset`),onClick:()=>ve(e),"data-testid":`record-row-${n}`,"aria-selected":o,children:[d&&(0,a.jsx)(r.TableCell,{className:`w-10`,children:o&&(0,a.jsx)(i.Check,{className:`size-4 text-primary`})}),Y.map(t=>(0,a.jsx)(r.TableCell,{className:`py-2.5`,children:we(e,t)},t.field))]},n??t)})})]})]}),!T&&D>0&&(0,a.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,a.jsxs)(`span`,{children:[D,` `,D===1?`record`:`records`,Z>1&&` · Page ${A} of ${Z}`]}),Z>1&&(0,a.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,a.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:be,disabled:A<=1,type:`button`,"aria-label":`Previous page`,children:(0,a.jsx)(i.ChevronLeft,{className:`size-4`})}),(0,a.jsx)(r.Input,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(A),value:q,onChange:e=>J(e.target.value),onKeyDown:Se,"aria-label":`Jump to page`,"data-testid":`record-picker-page-jump`}),(0,a.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`size-7`,onClick:xe,disabled:A>=Z,type:`button`,"aria-label":`Next page`,children:(0,a.jsx)(i.ChevronRight,{className:`size-4`})})]})]})]}),d&&(0,a.jsx)(r.DialogFooter,{children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,a.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[I.size,` selected`]}),(0,a.jsxs)(`div`,{className:`flex gap-2`,children:[(0,a.jsx)(r.Button,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:`Cancel`}),(0,a.jsx)(r.Button,{type:`button`,onClick:ye,children:`Confirm`})]})]})})]})})}var f;function p(e){f=e}function re(){return f}var m=e.t({LookupField:()=>_}),ie=50,h=o.SchemaRendererContext;function g(e,t,n,r){let i=e[n]??e.id??e._id,a=e[t]??e.label??e.name??String(i),o=r?e[r]:void 0;return{value:i,label:String(a),description:o,...e}}function ae(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function _({value:e,onChange:o,field:ee,readonly:te,...s}){let[c,l]=(0,n.useState)(!1),[u,ne]=(0,n.useState)(``),{t:f}=t.t(),[p,m]=(0,n.useState)([]),[_,v]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),[x,oe]=(0,n.useState)(0),S=(0,n.useRef)(null),[se,C]=(0,n.useState)([]),[w,T]=(0,n.useState)(-1),E=(0,n.useRef)(null),D=ee||s.schema,O=D?.field,k=O&&typeof O==`object`&&(`reference_to`in O||`reference`in O||`type`in O)?O:D,ce=k?.options||[],A=k?.multiple||!1,j=k?.display_field||k?.reference_field||`name`,M=k?.description_field,N=k?.id_field||`id`,P=k?.reference_to||k?.reference,F=k?.lookup_columns,le=k?.lookup_page_size,I=k?.lookup_filters,L=(0,n.useMemo)(()=>{let e=k?.depends_on??k?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[k?.depends_on,k?.dependsOn]),R=s.dependentValues,z=(0,n.useMemo)(()=>{if(!F)return;let e=[];for(let t of F)if(typeof t==`object`&&t.type){let n=ae(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[F]),B=(0,n.useContext)(h),ue=B?.dataSource??null,V=s.dataSource??D?.dataSource??k?.dataSource??ue,H=(0,n.useMemo)(()=>R||(B?.formValues??B?.data??{}),[R,B?.formValues,B?.data]),U=(0,n.useMemo)(()=>L.length===0?!1:L.some(({field:e})=>{let t=H[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[L,H]),W=V!=null&&typeof V.find==`function`&&!!P,G=s.onCreateNew??D?.onCreateNew,[de,K]=(0,n.useState)(!1),q=W?p:ce,J=(0,n.useMemo)(()=>{if(W||!u)return q;let e=u.toLowerCase();return q.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[W,q,u]);(0,n.useEffect)(()=>{T(-1)},[J.length]);let Y=(0,n.useCallback)(async e=>{if(!(!V||!P)){if(U){m([]),oe(0);return}v(!0),b(null);try{let t={$top:ie};if(e&&e.trim()&&(t.$search=e.trim()),L.length>0){let e={};for(let{field:t,param:n}of L){let r=H[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}Object.keys(e).length>0&&(t.$filter=e)}let n=await V.find(P,t),r=n?.data??n??[];m(r.map(e=>g(e,j,N,M))),oe(n?.total??r.length)}catch(e){b(e instanceof Error?e.message:String(e)),m([])}finally{v(!1)}}},[V,P,j,N,M,U,L,H]);(0,n.useEffect)(()=>{c&&W&&L.length>0&&Y(u||void 0)},[(0,n.useMemo)(()=>L.map(e=>`${e.param}=${H[e.field]??``}`).join(`|`),[L,H])]),(0,n.useEffect)(()=>{c&&W&&Y(u||void 0),c||(ne(``),b(null),T(-1))},[c]);let X=(0,n.useCallback)(e=>{ne(e),W&&(S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{Y(e||void 0)},300))},[W,Y]);(0,n.useEffect)(()=>()=>{S.current&&clearTimeout(S.current)},[]);let fe=(0,n.useCallback)(e=>ce.find(t=>t.value===e)??p.find(t=>t.value===e)??se.find(t=>t.value===e),[ce,p,se]),Z=A?(Array.isArray(e)?e:[]).map(fe).filter(Boolean):e?[fe(e)].filter(Boolean):[],Q=(0,n.useCallback)(t=>{if(A){let n=Array.isArray(e)?e:[];n.includes(t.value)?o(n.filter(e=>e!==t.value)):o([...n,t.value])}else o(t.value),l(!1)},[A,e,o]),pe=t=>{o(A?(Array.isArray(e)?e:[]).filter(e=>e!==t):null)},me=(0,n.useCallback)(e=>{C(e.map(e=>g(e,j,N,M)))},[j,N,M]),he=(0,n.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),T(e=>e<J.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),T(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),w>=0&&w<J.length&&Q(J[w]))},[J,w,Q]);return(0,n.useEffect)(()=>{w>=0&&E.current&&E.current.querySelector(`[data-lookup-index="${w}"]`)?.scrollIntoView({block:`nearest`})},[w]),te?Z.length?A?(0,a.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>(0,a.jsx)(r.Badge,{variant:`outline`,children:e?.[j]||e?.label},t))}):(0,a.jsx)(`span`,{className:`text-sm`,children:Z[0]?.[j]||Z[0]?.label}):(0,a.jsx)(r.EmptyValue,{}):(0,a.jsxs)(`div`,{className:`space-y-2`,children:[Z.length>0&&(0,a.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Z.map((e,t)=>(0,a.jsxs)(r.Badge,{variant:`outline`,className:`gap-1`,children:[e?.[j]||e?.label,(0,a.jsx)(`button`,{onClick:()=>pe(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":`Remove ${e?.[j]||e?.label}`,children:(0,a.jsx)(i.X,{className:`size-3`})})]},t))}),(0,a.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,a.jsxs)(r.Popover,{open:c,onOpenChange:e=>!U&&l(e),children:[(0,a.jsx)(r.PopoverTrigger,{asChild:!0,children:(0,a.jsxs)(r.Button,{variant:`outline`,className:`min-w-0 flex-1 justify-start text-left font-normal`,type:`button`,disabled:U||s.disabled,"data-testid":U?`lookup-trigger-gated`:void 0,title:U?`Select ${L.map(e=>e.field).join(`, `)} first`:void 0,children:[(0,a.jsx)(i.Search,{className:`mr-2 size-4`}),U?`Select ${L.map(e=>e.field).join(`, `)} first`:Z.length===0?D?.placeholder||f(`common.select`):A?f(`table.selected`,{count:Z.length}):f(`common.select`)]})}),(0,a.jsxs)(r.PopoverContent,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,a.jsx)(`div`,{className:`p-2`,children:(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(i.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,a.jsx)(r.Input,{placeholder:f(`common.search`)+`...`,value:u,onChange:e=>X(e.target.value),onKeyDown:he,className:`w-full pl-9 h-8 text-sm`}),_&&(0,a.jsx)(i.Loader2,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),y&&(0,a.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,a.jsx)(i.AlertCircle,{className:`size-5 text-destructive`}),(0,a.jsx)(`p`,{className:`text-sm text-destructive`,children:y}),(0,a.jsx)(r.Button,{variant:`outline`,size:`sm`,onClick:()=>Y(u||void 0),type:`button`,children:`Retry`})]}),_&&J.length===0&&!y&&(0,a.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,a.jsx)(i.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`})]}),!y&&!(_&&J.length===0)&&(0,a.jsx)(`div`,{ref:E,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,children:J.length===0?(0,a.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No options found`}),G&&(0,a.jsxs)(r.Button,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,onClick:()=>{G(u),l(!1)},children:[(0,a.jsx)(i.Plus,{className:`size-4`}),`Create new`]})]}):(0,a.jsxs)(a.Fragment,{children:[J.map((t,n)=>{let i=A?(Array.isArray(e)?e:[]).includes(t.value):e===t.value;return(0,a.jsxs)(`button`,{"data-lookup-index":n,role:`option`,"aria-selected":i,onClick:()=>Q(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${n===w?`bg-accent text-accent-foreground`:i?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,a.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,a.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,a.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),i&&(0,a.jsx)(r.Badge,{variant:`default`,className:`ml-2 shrink-0`,children:`Selected`})]},t.value)}),W&&x>J.length&&(0,a.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:[`Showing `,J.length,` of `,x,` results.`]}),W&&x>J.length&&(0,a.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:()=>{l(!1),K(!0)},"data-testid":`show-all-results`,children:[(0,a.jsx)(i.TableProperties,{className:`size-3.5`}),`Show All Results (`,x,`)`]}),G&&(0,a.jsxs)(`button`,{type:`button`,className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center gap-1.5 text-muted-foreground`,onClick:()=>{G(u),l(!1)},children:[(0,a.jsx)(i.Plus,{className:`size-3.5`}),`Create new`,u?` "${u}"`:``]})]})})]})]}),W&&(0,a.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,onClick:()=>K(!0),"aria-label":`Browse all records`,title:`Browse all records`,"data-testid":`browse-all-records`,children:(0,a.jsx)(i.TableProperties,{className:`size-4`})})]}),W&&V&&P&&(0,a.jsx)(d,{open:de,onOpenChange:K,title:D?.label||`Select`,multiple:A,dataSource:V,objectName:P,columns:F,displayField:j,idField:N,pageSize:le,value:e,onSelect:o,onSelectRecords:me,lookupFilters:I,cellRenderer:re(),filterColumns:z})]})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
|