@object-ui/plugin-detail 3.1.2 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.turbo/turbo-build.log +43 -41
  2. package/CHANGELOG.md +10 -0
  3. package/dist/{AddressField-QBIlXCFl.js → AddressField-BtiTrEpf.js} +1 -1
  4. package/dist/{AvatarField-BEZuQTAH.js → AvatarField-CwlnWNSf.js} +7 -7
  5. package/dist/{BooleanField-doa93aFX.js → BooleanField-DpMXU2ya.js} +1 -1
  6. package/dist/{CodeField-jVV-hIXg.js → CodeField-gwmcFihg.js} +2 -2
  7. package/dist/{ColorField-B53qKQGW.js → ColorField-CWmF_zoW.js} +1 -1
  8. package/dist/{CurrencyField-og0NJ2ax.js → CurrencyField-BF3tYAgm.js} +1 -1
  9. package/dist/{DateField-BFx64AtG.js → DateField-a6Ka9ph2.js} +1 -1
  10. package/dist/{DateTimeField-Cxs2Rx2f.js → DateTimeField-C4wWOEiw.js} +1 -1
  11. package/dist/{EmailField-BfcpzRe7.js → EmailField-DJqiQ4sp.js} +1 -1
  12. package/dist/{FileField-KarqvhYm.js → FileField-ChjjCydz.js} +1 -1
  13. package/dist/{GeolocationField-B5SKZaqn.js → GeolocationField-BnkeUBek.js} +1 -1
  14. package/dist/{GridField-DOotrUTo.js → GridField-DoHqc2ON.js} +6 -6
  15. package/dist/{ImageField-Ddotp4u-.js → ImageField-Ld7SHA8N.js} +1 -1
  16. package/dist/{LocationField-tOkQaPIM.js → LocationField-Bgu-vMAE.js} +1 -1
  17. package/dist/{MasterDetailField-CpHw3nTE.js → MasterDetailField-Bp5WBTzU.js} +3 -3
  18. package/dist/{NumberField-CzBb2a28.js → NumberField-uBqVZ-gt.js} +1 -1
  19. package/dist/{ObjectField-BoL-JqE4.js → ObjectField-BH1Md9gH.js} +6 -6
  20. package/dist/{PasswordField-DrTzkYgj.js → PasswordField-D8GZjY7d.js} +1 -1
  21. package/dist/{PercentField-B9ZUQ3zE.js → PercentField-DyK8vg8M.js} +1 -1
  22. package/dist/{PhoneField-Bf9lhpdu.js → PhoneField-B3qJyLP0.js} +1 -1
  23. package/dist/{QRCodeField-PzMpdBKd.js → QRCodeField-CGiRTCZq.js} +1 -1
  24. package/dist/{RatingField-CeBMFe8o.js → RatingField-CWVaJNyf.js} +4 -4
  25. package/dist/{RichTextField-Ch7CHSQ0.js → RichTextField-CusveP9T.js} +1 -1
  26. package/dist/{SelectField-f5Nbi02x.js → SelectField-UdDfsEZo.js} +1 -1
  27. package/dist/{SignatureField-CpxTX2tR.js → SignatureField-DFvPKbuI.js} +1 -1
  28. package/dist/{SliderField-BoZtzgcr.js → SliderField-C-HvGV9e.js} +1 -1
  29. package/dist/{TextAreaField-rT1DLnV2.js → TextAreaField-C5KygUT3.js} +1 -1
  30. package/dist/{TextField-CflRxusu.js → TextField-oUjuqQ1x.js} +1 -1
  31. package/dist/{TimeField-DeVeCpRu.js → TimeField-SsQ6rfk5.js} +1 -1
  32. package/dist/{UrlField-UWKfhP9T.js → UrlField-kd48Ip95.js} +1 -1
  33. package/dist/{UserField-Cp2zQDjz.js → UserField-BOjE_CAz.js} +11 -11
  34. package/dist/{index-V_WBvcaA.js → index-D2t9pLAg.js} +56341 -56642
  35. package/dist/index.js +10 -10
  36. package/dist/index.umd.cjs +61 -63
  37. package/dist/plugin-detail.css +1 -1
  38. package/dist/src/DetailSection.d.ts +10 -0
  39. package/dist/src/DetailSection.d.ts.map +1 -1
  40. package/dist/src/HeaderHighlight.d.ts +2 -0
  41. package/dist/src/HeaderHighlight.d.ts.map +1 -1
  42. package/dist/src/RecordChatterPanel.d.ts +2 -0
  43. package/dist/src/RecordChatterPanel.d.ts.map +1 -1
  44. package/dist/src/autoLayout.d.ts +10 -3
  45. package/dist/src/autoLayout.d.ts.map +1 -1
  46. package/dist/src/index.d.ts +1 -1
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/package.json +7 -7
  49. package/src/DetailSection.tsx +40 -1
  50. package/src/DetailView.tsx +1 -1
  51. package/src/HeaderHighlight.tsx +22 -1
  52. package/src/RecordChatterPanel.tsx +6 -1
  53. package/src/RelatedList.tsx +1 -1
  54. package/src/__tests__/DetailSection.test.tsx +61 -0
  55. package/src/__tests__/HeaderHighlight.test.tsx +145 -0
  56. package/src/__tests__/RecordChatterPanel.test.tsx +38 -0
  57. package/src/__tests__/RelatedList.test.tsx +3 -3
  58. package/src/__tests__/autoLayout.test.ts +44 -0
  59. package/src/autoLayout.ts +25 -8
  60. package/src/index.tsx +1 -1
  61. package/dist/LookupField-DF36GvIP.js +0 -96
@@ -1,55 +1,57 @@
1
1
 
2
- > @object-ui/plugin-detail@3.1.2 build /home/runner/work/objectui/objectui/packages/plugin-detail
2
+ > @object-ui/plugin-detail@3.1.3 build /home/runner/work/objectui/objectui/packages/plugin-detail
3
3
  > vite build
4
4
 
5
5
  vite v7.3.1 building client environment for production...
6
6
  transforming...
7
- ✓ 3850 modules transformed.
7
+ ✓ 3876 modules transformed.
8
8
  rendering chunks...
9
+ [plugin vite:reporter]
10
+ (!) /home/runner/work/objectui/objectui/packages/fields/src/widgets/LookupField.tsx is dynamically imported by /home/runner/work/objectui/objectui/packages/fields/src/index.tsx but also statically imported by /home/runner/work/objectui/objectui/packages/fields/src/index.tsx, dynamic import will not move module into another chunk.
11
+ 
9
12
  
10
13
  [vite:dts] Start generate declaration files...
11
14
  computing gzip size...
12
- [vite:dts] Declaration files built in 28757ms.
15
+ [vite:dts] Declaration files built in 26070ms.
13
16
  
14
- dist/plugin-detail.css  122.75 kB │ gzip: 20.06 kB
17
+ dist/plugin-detail.css  122.96 kB │ gzip: 20.09 kB
15
18
  dist/AutoNumberField-BxnFqllo.js  0.29 kB │ gzip: 0.24 kB
16
19
  dist/SummaryField-ugYPYxjP.js  0.49 kB │ gzip: 0.34 kB
17
- dist/TimeField-DeVeCpRu.js  0.52 kB │ gzip: 0.33 kB
20
+ dist/TimeField-SsQ6rfk5.js  0.52 kB │ gzip: 0.33 kB
18
21
  dist/FormulaField-CJkkwIK8.js  0.53 kB │ gzip: 0.36 kB
19
- dist/DateField-BFx64AtG.js  0.55 kB │ gzip: 0.35 kB
20
- dist/NumberField-CzBb2a28.js  0.70 kB │ gzip: 0.43 kB
21
- dist/DateTimeField-Cxs2Rx2f.js  0.73 kB │ gzip: 0.40 kB
22
- dist/CodeField-jVV-hIXg.js  0.76 kB │ gzip: 0.45 kB
22
+ dist/DateField-a6Ka9ph2.js  0.55 kB │ gzip: 0.35 kB
23
+ dist/NumberField-uBqVZ-gt.js  0.70 kB │ gzip: 0.43 kB
24
+ dist/DateTimeField-C4wWOEiw.js  0.73 kB │ gzip: 0.41 kB
25
+ dist/CodeField-gwmcFihg.js  0.76 kB │ gzip: 0.46 kB
23
26
  dist/VectorField-CKg9jdGa.js  0.80 kB │ gzip: 0.43 kB
24
- dist/PhoneField-Bf9lhpdu.js  0.82 kB │ gzip: 0.47 kB
25
- dist/EmailField-BfcpzRe7.js  0.83 kB │ gzip: 0.47 kB
26
- dist/TextField-CflRxusu.js  0.84 kB │ gzip: 0.41 kB
27
- dist/SelectField-f5Nbi02x.js  0.92 kB │ gzip: 0.48 kB
28
- dist/LocationField-tOkQaPIM.js  0.97 kB │ gzip: 0.52 kB
29
- dist/UrlField-UWKfhP9T.js  1.00 kB │ gzip: 0.51 kB
30
- dist/SliderField-BoZtzgcr.js  1.03 kB │ gzip: 0.48 kB
31
- dist/index.js  1.11 kB │ gzip: 0.61 kB
32
- dist/TextAreaField-rT1DLnV2.js  1.12 kB │ gzip: 0.58 kB
33
- dist/BooleanField-doa93aFX.js  1.16 kB │ gzip: 0.50 kB
34
- dist/RichTextField-Ch7CHSQ0.js  1.18 kB │ gzip: 0.58 kB
35
- dist/PasswordField-DrTzkYgj.js  1.24 kB │ gzip: 0.61 kB
36
- dist/ColorField-B53qKQGW.js  1.26 kB │ gzip: 0.52 kB
37
- dist/CurrencyField-og0NJ2ax.js  1.51 kB │ gzip: 0.73 kB
38
- dist/RatingField-CeBMFe8o.js  1.66 kB │ gzip: 0.65 kB
39
- dist/ObjectField-BoL-JqE4.js  1.68 kB │ gzip: 0.76 kB
40
- dist/GridField-DOotrUTo.js  1.75 kB │ gzip: 0.68 kB
41
- dist/PercentField-B9ZUQ3zE.js  1.94 kB │ gzip: 0.84 kB
42
- dist/UserField-Cp2zQDjz.js  2.39 kB │ gzip: 0.90 kB
43
- dist/QRCodeField-PzMpdBKd.js  2.41 kB │ gzip: 0.91 kB
44
- dist/AvatarField-BEZuQTAH.js  2.69 kB │ gzip: 1.06 kB
45
- dist/ImageField-Ddotp4u-.js  2.89 kB │ gzip: 1.14 kB
46
- dist/SignatureField-CpxTX2tR.js  3.04 kB │ gzip: 1.10 kB
47
- dist/AddressField-QBIlXCFl.js  3.05 kB │ gzip: 0.75 kB
48
- dist/MasterDetailField-CpHw3nTE.js  3.48 kB │ gzip: 0.99 kB
49
- dist/GeolocationField-B5SKZaqn.js  3.80 kB │ gzip: 1.21 kB
50
- dist/LookupField-DF36GvIP.js  4.10 kB │ gzip: 1.38 kB
51
- dist/FileField-KarqvhYm.js  5.63 kB │ gzip: 1.95 kB
52
- dist/index-V_WBvcaA.js 3,377.41 kB │ gzip: 788.55 kB
53
- dist/plugin-detail.css  122.75 kB │ gzip: 20.06 kB
54
- dist/index.umd.cjs 2,369.54 kB gzip: 624.83 kB
55
- ✓ built in 50.56s
27
+ dist/PhoneField-B3qJyLP0.js  0.82 kB │ gzip: 0.47 kB
28
+ dist/EmailField-DJqiQ4sp.js  0.83 kB │ gzip: 0.47 kB
29
+ dist/TextField-oUjuqQ1x.js  0.84 kB │ gzip: 0.42 kB
30
+ dist/SelectField-UdDfsEZo.js  0.92 kB │ gzip: 0.48 kB
31
+ dist/LocationField-Bgu-vMAE.js  0.97 kB │ gzip: 0.52 kB
32
+ dist/UrlField-kd48Ip95.js  1.00 kB │ gzip: 0.51 kB
33
+ dist/SliderField-C-HvGV9e.js  1.03 kB │ gzip: 0.48 kB
34
+ dist/index.js  1.11 kB │ gzip: 0.60 kB
35
+ dist/TextAreaField-C5KygUT3.js  1.12 kB │ gzip: 0.58 kB
36
+ dist/BooleanField-DpMXU2ya.js  1.16 kB │ gzip: 0.50 kB
37
+ dist/RichTextField-CusveP9T.js  1.18 kB │ gzip: 0.58 kB
38
+ dist/PasswordField-D8GZjY7d.js  1.24 kB │ gzip: 0.61 kB
39
+ dist/ColorField-CWmF_zoW.js  1.26 kB │ gzip: 0.52 kB
40
+ dist/CurrencyField-BF3tYAgm.js  1.51 kB │ gzip: 0.73 kB
41
+ dist/RatingField-CWVaJNyf.js  1.66 kB │ gzip: 0.65 kB
42
+ dist/ObjectField-BH1Md9gH.js  1.68 kB │ gzip: 0.76 kB
43
+ dist/GridField-DoHqc2ON.js  1.75 kB │ gzip: 0.68 kB
44
+ dist/PercentField-DyK8vg8M.js  1.94 kB │ gzip: 0.84 kB
45
+ dist/UserField-BOjE_CAz.js  2.39 kB │ gzip: 0.90 kB
46
+ dist/QRCodeField-CGiRTCZq.js  2.41 kB │ gzip: 0.91 kB
47
+ dist/AvatarField-CwlnWNSf.js  2.69 kB │ gzip: 1.06 kB
48
+ dist/ImageField-Ld7SHA8N.js  2.89 kB │ gzip: 1.14 kB
49
+ dist/SignatureField-DFvPKbuI.js  3.04 kB │ gzip: 1.10 kB
50
+ dist/AddressField-BtiTrEpf.js  3.05 kB │ gzip: 0.75 kB
51
+ dist/MasterDetailField-Bp5WBTzU.js  3.48 kB │ gzip: 0.99 kB
52
+ dist/GeolocationField-BnkeUBek.js  3.80 kB │ gzip: 1.21 kB
53
+ dist/FileField-ChjjCydz.js  5.63 kB │ gzip: 1.95 kB
54
+ dist/index-D2t9pLAg.js 3,378.40 kB │ gzip: 783.90 kB
55
+ dist/plugin-detail.css  122.96 kB │ gzip: 20.09 kB
56
+ dist/index.umd.cjs 2,364.78 kB │ gzip: 619.33 kB
57
+ ✓ built in 43.51s
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @object-ui/plugin-detail
2
2
 
3
+ ## 3.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - @object-ui/types@3.1.3
8
+ - @object-ui/core@3.1.3
9
+ - @object-ui/react@3.1.3
10
+ - @object-ui/components@3.1.3
11
+ - @object-ui/fields@3.1.3
12
+
3
13
  ## 3.1.2
4
14
 
5
15
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
- import { L as r, I as c } from "./index-V_WBvcaA.js";
2
+ import { L as r, I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function p({ value: o, onChange: h, field: u, readonly: i, ...l }) {
5
5
  const s = o || {}, d = (e, n) => {
@@ -1,7 +1,7 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
2
  import f from "react";
3
- import { A as h, s as p, q as g, X as A, B as F, U as R } from "./index-V_WBvcaA.js";
4
- function B({ value: t, onChange: n, field: v, readonly: l, ...c }) {
3
+ import { A as h, n as p, l as g, X as A, B as F, U as R } from "./index-D2t9pLAg.js";
4
+ function B({ value: t, onChange: i, field: v, readonly: l, ...c }) {
5
5
  const [b, o] = f.useState(!1), d = f.useRef(null), r = v || c.schema, N = (u) => {
6
6
  const a = u.target.files?.[0];
7
7
  if (!a) return;
@@ -13,12 +13,12 @@ function B({ value: t, onChange: n, field: v, readonly: l, ...c }) {
13
13
  console.error("File size must be less than 5MB");
14
14
  return;
15
15
  }
16
- const i = new FileReader();
17
- i.onloadend = () => {
18
- n(i.result);
19
- }, i.readAsDataURL(a);
16
+ const n = new FileReader();
17
+ n.onloadend = () => {
18
+ i(n.result);
19
+ }, n.readAsDataURL(a);
20
20
  }, x = () => {
21
- n("");
21
+ i("");
22
22
  }, m = () => (r?.defaultName || r?.label || "User").split(" ").map((a) => a[0]).join("").toUpperCase().slice(0, 2);
23
23
  return l ? /* @__PURE__ */ s(h, { className: "w-16 h-16", children: [
24
24
  t && /* @__PURE__ */ e(p, { src: t, alt: r?.label }),
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
2
  import { useId as f } from "react";
3
- import { C as p, L as l, S as k } from "./index-V_WBvcaA.js";
3
+ import { C as p, L as l, S as k } from "./index-D2t9pLAg.js";
4
4
  function w({ value: t, onChange: n, field: h, readonly: i, ...o }) {
5
5
  const d = h || o.schema, m = d?.widget, x = f(), c = d?.name || x, r = d?.label || "Checkbox";
6
6
  if (i)
@@ -1,10 +1,10 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { o as l, T as m } from "./index-V_WBvcaA.js";
2
+ import { i as l, T as i } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function g({ value: o, onChange: s, field: c, readonly: r, ...e }) {
5
5
  const t = c || e.schema, n = t?.language ?? "javascript";
6
6
  return r ? /* @__PURE__ */ a("pre", { className: l("text-sm bg-muted p-2 rounded overflow-x-auto border", e.className), children: /* @__PURE__ */ a("code", { children: o || "-" }) }) : /* @__PURE__ */ a(
7
- m,
7
+ i,
8
8
  {
9
9
  value: o || "",
10
10
  onChange: (d) => s(d.target.value),
@@ -1,5 +1,5 @@
1
1
  import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
- import { I as c } from "./index-V_WBvcaA.js";
2
+ import { I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function p({ value: e, onChange: l, field: i, readonly: t, ...r }) {
5
5
  const o = i || r.schema;
@@ -1,5 +1,5 @@
1
1
  import { jsx as n, jsxs as p } from "react/jsx-runtime";
2
- import { I as f } from "./index-V_WBvcaA.js";
2
+ import { I as f } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function h(e, t = "USD") {
5
5
  try {
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { I as p } from "./index-V_WBvcaA.js";
2
+ import { I as p } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: t, onChange: i, field: s, readonly: e, ...n }) {
5
5
  if (e)
@@ -1,5 +1,5 @@
1
1
  import { jsx as n, jsxs as o } from "react/jsx-runtime";
2
- import { I as m } from "./index-V_WBvcaA.js";
2
+ import { I as m } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function u({ value: e, onChange: r, field: l, readonly: a, ...s }) {
5
5
  if (a) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { I as c } from "./index-V_WBvcaA.js";
2
+ import { I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: e, onChange: l, field: m, readonly: i, errorMessage: n, ...r }) {
5
5
  const o = m || r.schema;
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as o } from "react/jsx-runtime";
2
2
  import { useRef as I, useState as k, useCallback as g } from "react";
3
- import { U as P, p as U, F as $, B as C, X as E } from "./index-V_WBvcaA.js";
3
+ import { U as P, k as U, F as $, B as C, X as E } from "./index-D2t9pLAg.js";
4
4
  function M({ value: n, onChange: c, field: w, readonly: j, ...b }) {
5
5
  const y = I(null), m = w || b.schema, d = m?.multiple || !1, p = m?.accept ? m.accept.join(",") : void 0, u = m?.maxSize, [N, v] = k(!1), [D, A] = k([]), l = n ? Array.isArray(n) ? n : [n] : [], f = g((e) => {
6
6
  if (e.length === 0) return;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as i } from "react/jsx-runtime";
2
2
  import v from "react";
3
- import { M as g, B as s, t as N, L as h, I as p } from "./index-V_WBvcaA.js";
3
+ import { M as g, B as s, o as N, L as h, I as p } from "./index-D2t9pLAg.js";
4
4
  function F({ value: x, onChange: r, field: y, readonly: o, ...n }) {
5
5
  const [d, l] = v.useState(!1), t = x || {}, c = (e, m) => {
6
6
  r({
@@ -1,14 +1,14 @@
1
1
  import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
- import { o as i } from "./index-V_WBvcaA.js";
2
+ import { i as a } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: r, field: l, readonly: m, ...s }) {
5
- const o = (l || s.schema)?.columns || [];
6
- return !r || !Array.isArray(r) ? /* @__PURE__ */ e("span", { className: "text-sm text-muted-foreground", children: "-" }) : m ? /* @__PURE__ */ e("div", { className: i("text-sm", s.className), children: /* @__PURE__ */ t("span", { className: "text-foreground", children: [
5
+ const i = (l || s.schema)?.columns || [];
6
+ return !r || !Array.isArray(r) ? /* @__PURE__ */ e("span", { className: "text-sm text-muted-foreground", children: "-" }) : m ? /* @__PURE__ */ e("div", { className: a("text-sm", s.className), children: /* @__PURE__ */ t("span", { className: "text-foreground", children: [
7
7
  r.length,
8
8
  " rows"
9
- ] }) }) : /* @__PURE__ */ t("div", { className: i("border border-border rounded-lg overflow-hidden", s.className), children: [
9
+ ] }) }) : /* @__PURE__ */ t("div", { className: a("border border-border rounded-lg overflow-hidden", s.className), children: [
10
10
  /* @__PURE__ */ e("div", { className: "overflow-auto max-h-60", children: /* @__PURE__ */ t("table", { className: "w-full text-sm", children: [
11
- /* @__PURE__ */ e("thead", { className: "bg-muted border-b border-border", children: /* @__PURE__ */ e("tr", { children: o.map((d, n) => /* @__PURE__ */ e(
11
+ /* @__PURE__ */ e("thead", { className: "bg-muted border-b border-border", children: /* @__PURE__ */ e("tr", { children: i.map((d, n) => /* @__PURE__ */ e(
12
12
  "th",
13
13
  {
14
14
  className: "px-3 py-2 text-left text-xs font-medium text-muted-foreground",
@@ -16,7 +16,7 @@ function f({ value: r, field: l, readonly: m, ...s }) {
16
16
  },
17
17
  n
18
18
  )) }) }),
19
- /* @__PURE__ */ e("tbody", { className: "divide-y divide-border", children: r.slice(0, 5).map((d, n) => /* @__PURE__ */ e("tr", { className: "hover:bg-muted/50 transition-colors", children: o.map((a, c) => /* @__PURE__ */ e("td", { className: "px-3 py-2 text-foreground", children: d[a.name] != null ? String(d[a.name]) : "-" }, c)) }, n)) })
19
+ /* @__PURE__ */ e("tbody", { className: "divide-y divide-border", children: r.slice(0, 5).map((d, n) => /* @__PURE__ */ e("tr", { className: "hover:bg-muted/50 transition-colors", children: i.map((o, c) => /* @__PURE__ */ e("td", { className: "px-3 py-2 text-foreground", children: d[o.name] != null ? String(d[o.name]) : "-" }, c)) }, n)) })
20
20
  ] }) }),
21
21
  r.length > 5 && /* @__PURE__ */ t("div", { className: "bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border", children: [
22
22
  "Showing 5 of ",
@@ -1,6 +1,6 @@
1
1
  import { jsx as a, jsxs as l } from "react/jsx-runtime";
2
2
  import { useRef as b } from "react";
3
- import { B as g, X as j, p as z } from "./index-V_WBvcaA.js";
3
+ import { B as g, X as j, k as z } from "./index-D2t9pLAg.js";
4
4
  function R({ value: s, onChange: n, field: u, readonly: h, ...d }) {
5
5
  const p = b(null), m = u || d.schema, o = m?.multiple || !1, f = m?.accept ? m.accept.join(",") : "image/*";
6
6
  if (h) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { I as u } from "./index-V_WBvcaA.js";
2
+ import { I as u } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function x({ value: t, onChange: i, field: d, readonly: n, ...a }) {
5
5
  const m = d || a.schema, s = t && typeof t == "object" ? `${t.latitude || 0}, ${t.longitude || 0}` : "";
@@ -1,7 +1,7 @@
1
1
  import { jsxs as t, jsx as s } from "react/jsx-runtime";
2
- import { B as d, n as c, o, h as f, X as g, P as v } from "./index-V_WBvcaA.js";
2
+ import { B as d, h as c, i as o, j as f, X as g, P as v } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
- function j({
4
+ function k({
5
5
  value: m,
6
6
  onChange: n,
7
7
  field: h,
@@ -104,5 +104,5 @@ function j({
104
104
  ] });
105
105
  }
106
106
  export {
107
- j as MasterDetailField
107
+ k as MasterDetailField
108
108
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { I as c } from "./index-V_WBvcaA.js";
2
+ import { I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: e, onChange: p, field: l, readonly: t, ...n }) {
5
5
  if (t)
@@ -1,7 +1,7 @@
1
1
  import { jsx as s, jsxs as x } from "react/jsx-runtime";
2
2
  import { useState as g, useEffect as S } from "react";
3
- import { o as m, T as y } from "./index-V_WBvcaA.js";
4
- function j({ value: r, onChange: o, field: u, readonly: c, ...t }) {
3
+ import { i as m, T as y } from "./index-D2t9pLAg.js";
4
+ function j({ value: r, onChange: c, field: u, readonly: o, ...t }) {
5
5
  const N = u || t.schema, h = () => r == null ? "" : JSON.stringify(r, null, 2), [e, n] = g(h), [i, d] = g(null);
6
6
  return S(() => {
7
7
  try {
@@ -14,7 +14,7 @@ function j({ value: r, onChange: o, field: u, readonly: c, ...t }) {
14
14
  } catch {
15
15
  n(JSON.stringify(r, null, 2));
16
16
  }
17
- }, [r, e]), c ? r ? /* @__PURE__ */ s("pre", { className: m("text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40", t.className), children: JSON.stringify(r, null, 2) }) : /* @__PURE__ */ s("span", { className: "text-sm", children: "-" }) : /* @__PURE__ */ x("div", { className: "space-y-1", children: [
17
+ }, [r, e]), o ? r ? /* @__PURE__ */ s("pre", { className: m("text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40", t.className), children: JSON.stringify(r, null, 2) }) : /* @__PURE__ */ s("span", { className: "text-sm", children: "-" }) : /* @__PURE__ */ x("div", { className: "space-y-1", children: [
18
18
  /* @__PURE__ */ s(
19
19
  y,
20
20
  {
@@ -22,12 +22,12 @@ function j({ value: r, onChange: o, field: u, readonly: c, ...t }) {
22
22
  onChange: (l) => {
23
23
  const a = l.target.value;
24
24
  if (n(a), d(null), !a.trim()) {
25
- o(null);
25
+ c(null);
26
26
  return;
27
27
  }
28
28
  try {
29
29
  const f = JSON.parse(a);
30
- o(f);
30
+ c(f);
31
31
  } catch {
32
32
  d("Invalid JSON");
33
33
  }
@@ -35,7 +35,7 @@ function j({ value: r, onChange: o, field: u, readonly: c, ...t }) {
35
35
  placeholder: N?.placeholder || `{
36
36
  "key": "value"
37
37
  }`,
38
- disabled: c || t.disabled,
38
+ disabled: o || t.disabled,
39
39
  className: m("font-mono text-xs", i ? "border-red-500 focus-visible:ring-red-500" : "", t.className),
40
40
  rows: 6
41
41
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx as s, jsxs as m } from "react/jsx-runtime";
2
2
  import { useState as h } from "react";
3
- import { I as u, B as f, E as g, g as x } from "./index-V_WBvcaA.js";
3
+ import { I as u, B as f, E as g, g as x } from "./index-D2t9pLAg.js";
4
4
  function N({ value: o, onChange: l, field: n, readonly: a, className: i, ...t }) {
5
5
  const [e, c] = h(!1), p = n || t.schema;
6
6
  if (a)
@@ -1,5 +1,5 @@
1
1
  import { jsx as i, jsxs as d } from "react/jsx-runtime";
2
- import { I as g, f as y } from "./index-V_WBvcaA.js";
2
+ import { I as g, f as y } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function S({ value: e, onChange: s, field: o, readonly: n, errorMessage: u, className: p, ...a }) {
5
5
  const m = o || a.schema, r = m?.precision ?? 2;
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { I as d } from "./index-V_WBvcaA.js";
2
+ import { I as d } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: e, onChange: o, field: a, readonly: r, errorMessage: l, ...n }) {
5
5
  const s = a || n.schema;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as s, jsx as t, Fragment as x } from "react/jsx-runtime";
2
2
  import g from "react";
3
- import { B as n, Q as d, I as u, v as N } from "./index-V_WBvcaA.js";
3
+ import { B as n, Q as d, I as u, q as N } from "./index-D2t9pLAg.js";
4
4
  function b({ value: e, onChange: l, field: m, readonly: i, ...r }) {
5
5
  const [a, o] = g.useState(!1), h = m || r.schema, p = (c) => `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(c)}`, f = () => {
6
6
  e && navigator.clipboard.writeText(e);
@@ -1,8 +1,8 @@
1
1
  import { jsxs as o, jsx as r } from "react/jsx-runtime";
2
2
  import y from "react";
3
- import { r as c, o as m } from "./index-V_WBvcaA.js";
3
+ import { m as c, i as m } from "./index-D2t9pLAg.js";
4
4
  function b({ value: d, onChange: f, field: x, readonly: n, className: s, ...a }) {
5
- const t = (x || a.schema)?.max ?? 5, l = d ?? 0, [u, i] = y.useState(null), g = u !== null ? u : l;
5
+ const t = (x || a.schema)?.max ?? 5, l = d ?? 0, [i, u] = y.useState(null), g = i !== null ? i : l;
6
6
  return n ? /* @__PURE__ */ o("div", { className: m("flex items-center gap-1", s), children: [
7
7
  Array.from({ length: t }, (h, e) => /* @__PURE__ */ r(
8
8
  c,
@@ -22,8 +22,8 @@ function b({ value: d, onChange: f, field: x, readonly: n, className: s, ...a })
22
22
  {
23
23
  type: "button",
24
24
  onClick: () => f(e + 1),
25
- onMouseEnter: () => i(e + 1),
26
- onMouseLeave: () => i(null),
25
+ onMouseEnter: () => u(e + 1),
26
+ onMouseLeave: () => u(null),
27
27
  className: "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded",
28
28
  disabled: n || a.disabled,
29
29
  children: /* @__PURE__ */ r(
@@ -1,5 +1,5 @@
1
1
  import { jsx as a, jsxs as s } from "react/jsx-runtime";
2
- import { T as x } from "./index-V_WBvcaA.js";
2
+ import { T as x } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function N({ value: r, onChange: c, field: n, readonly: i, errorMessage: o, ...e }) {
5
5
  if (i)
@@ -1,5 +1,5 @@
1
1
  import { jsx as a, jsxs as r } from "react/jsx-runtime";
2
- import { a as m, b as h, c as u, d as S, e as f } from "./index-V_WBvcaA.js";
2
+ import { a as m, b as h, c as u, d as S, e as f } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function x({ value: t, onChange: s, field: o, readonly: c, ...e }) {
5
5
  const i = o || e.schema, n = i?.options || [];
@@ -1,6 +1,6 @@
1
1
  import { jsx as o, jsxs as f } from "react/jsx-runtime";
2
2
  import v, { useRef as b, useEffect as S } from "react";
3
- import { B as C, u as R } from "./index-V_WBvcaA.js";
3
+ import { B as C, p as R } from "./index-D2t9pLAg.js";
4
4
  function E({ value: c, onChange: g, readonly: i }) {
5
5
  const r = b(null), [h, m] = v.useState(!1), [p, a] = v.useState(!c);
6
6
  S(() => {
@@ -1,5 +1,5 @@
1
1
  import { jsxs as m, jsx as a } from "react/jsx-runtime";
2
- import { f as x } from "./index-V_WBvcaA.js";
2
+ import { f as x } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function u({ value: s, onChange: l, field: r, readonly: n, ...t }) {
5
5
  const i = r || t.schema, e = i?.min ?? 0, c = i?.max ?? 100, d = i?.step ?? 1;
@@ -1,5 +1,5 @@
1
1
  import { jsx as l, jsxs as o } from "react/jsx-runtime";
2
- import { T as x } from "./index-V_WBvcaA.js";
2
+ import { T as x } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function u({ value: e, onChange: n, field: c, readonly: r, errorMessage: d, ...i }) {
5
5
  if (r)
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { T as n, I as c } from "./index-V_WBvcaA.js";
2
+ import { T as n, I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function x({ value: a, onChange: d, field: i, readonly: r, ...l }) {
5
5
  const e = i || l.schema;
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { I as p } from "./index-V_WBvcaA.js";
2
+ import { I as p } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function f({ value: e, onChange: m, field: s, readonly: t, ...n }) {
5
5
  if (t)
@@ -1,5 +1,5 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { I as c } from "./index-V_WBvcaA.js";
2
+ import { I as c } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function x({ value: t, onChange: a, field: l, readonly: r, errorMessage: o, ...s }) {
5
5
  const p = l || s.schema;
@@ -1,17 +1,17 @@
1
- import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
- import { A as m, q as o, h as b, X as f } from "./index-V_WBvcaA.js";
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { A as m, l as o, j as b, X as f } from "./index-D2t9pLAg.js";
3
3
  import "react";
4
4
  function j({ value: s, onChange: d, field: p, readonly: x, ...h }) {
5
5
  const g = (p || h.schema)?.multiple || !1;
6
6
  if (x) {
7
7
  if (!s) return /* @__PURE__ */ e("span", { className: "text-sm", children: "-" });
8
8
  const t = Array.isArray(s) ? s : [s];
9
- return /* @__PURE__ */ l("div", { className: "flex -space-x-2", children: [
10
- t.slice(0, 3).map((r, i) => {
9
+ return /* @__PURE__ */ i("div", { className: "flex -space-x-2", children: [
10
+ t.slice(0, 3).map((r, l) => {
11
11
  const a = r.name || r.username || "User", c = a.split(" ").map((N) => N[0]).join("").toUpperCase().slice(0, 2);
12
- return /* @__PURE__ */ e(m, { className: "size-8 border-2 border-white", title: a, children: /* @__PURE__ */ e(o, { className: "bg-blue-500 text-white text-xs", children: c }) }, i);
12
+ return /* @__PURE__ */ e(m, { className: "size-8 border-2 border-white", title: a, children: /* @__PURE__ */ e(o, { className: "bg-blue-500 text-white text-xs", children: c }) }, l);
13
13
  }),
14
- t.length > 3 && /* @__PURE__ */ e(m, { className: "size-8 border-2 border-white", children: /* @__PURE__ */ l(o, { className: "bg-gray-200 text-gray-600 text-xs", children: [
14
+ t.length > 3 && /* @__PURE__ */ e(m, { className: "size-8 border-2 border-white", children: /* @__PURE__ */ i(o, { className: "bg-gray-200 text-gray-600 text-xs", children: [
15
15
  "+",
16
16
  t.length - 3
17
17
  ] }) })
@@ -19,17 +19,17 @@ function j({ value: s, onChange: d, field: p, readonly: x, ...h }) {
19
19
  }
20
20
  const n = s ? Array.isArray(s) ? s : [s] : [], u = (t) => {
21
21
  if (g) {
22
- const r = n.filter((i, a) => a !== t);
22
+ const r = n.filter((l, a) => a !== t);
23
23
  d(r.length > 0 ? r : null);
24
24
  } else
25
25
  d(null);
26
26
  };
27
- return /* @__PURE__ */ l("div", { className: h.className, children: [
27
+ return /* @__PURE__ */ i("div", { className: h.className, children: [
28
28
  n.length > 0 && /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2 mb-2", children: n.map((t, r) => {
29
- const i = t.name || t.username || "User", a = i.split(" ").map((c) => c[0]).join("").toUpperCase().slice(0, 2);
30
- return /* @__PURE__ */ l(b, { variant: "outline", className: "gap-2 pr-1", children: [
29
+ const l = t.name || t.username || "User", a = l.split(" ").map((c) => c[0]).join("").toUpperCase().slice(0, 2);
30
+ return /* @__PURE__ */ i(b, { variant: "outline", className: "gap-2 pr-1", children: [
31
31
  /* @__PURE__ */ e(m, { className: "size-5", children: /* @__PURE__ */ e(o, { className: "bg-blue-500 text-white text-xs", children: a }) }),
32
- /* @__PURE__ */ e("span", { className: "text-sm", children: i }),
32
+ /* @__PURE__ */ e("span", { className: "text-sm", children: l }),
33
33
  /* @__PURE__ */ e(
34
34
  "button",
35
35
  {