@object-ui/plugin-detail 3.1.2 → 3.1.4

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 (102) hide show
  1. package/.turbo/turbo-build.log +53 -47
  2. package/CHANGELOG.md +20 -0
  3. package/dist/AddressField-DBkEyMcG.js +93 -0
  4. package/dist/AutoNumberField-Baa191z-.js +14 -0
  5. package/dist/AvatarField-YGj51ozd.js +80 -0
  6. package/dist/BooleanField-CaA898Tk.js +40 -0
  7. package/dist/CodeField-BU51nl1L.js +22 -0
  8. package/dist/ColorField-Cnf6ZM7c.js +37 -0
  9. package/dist/CurrencyField-Wg-XOId2.js +51 -0
  10. package/dist/DateField-Cth1ky_m.js +21 -0
  11. package/dist/DateTimeField-B0m6FhHL.js +32 -0
  12. package/dist/EmailField-Do7qT_L_.js +28 -0
  13. package/dist/FileField-aRJAdbQb.js +151 -0
  14. package/dist/FormulaField-DTMkagFx.js +14 -0
  15. package/dist/GeolocationField-RqpHWTEv.js +113 -0
  16. package/dist/GridField-D4IH0cpo.js +51 -0
  17. package/dist/ImageField-BYCFajjr.js +75 -0
  18. package/dist/LocationField-Bi_ew9sd.js +35 -0
  19. package/dist/LookupField-BjwlDPtt.js +902 -0
  20. package/dist/MasterDetailField-I1A9oEGC.js +94 -0
  21. package/dist/NumberField-D_NucQlp.js +26 -0
  22. package/dist/ObjectField-CG-LaM65.js +52 -0
  23. package/dist/PasswordField-DBtluGJ1.js +35 -0
  24. package/dist/PercentField-B6sO_J3i.js +63 -0
  25. package/dist/PhoneField-CcQAWwR6.js +28 -0
  26. package/dist/QRCodeField-CEjWs-J5.js +72 -0
  27. package/dist/RatingField-B_Mnr63i.js +39 -0
  28. package/dist/RichTextField-qOEJl5Ai.js +32 -0
  29. package/dist/SelectField-C8hWu3gm.js +30 -0
  30. package/dist/SignatureField-CddhEK9u.js +92 -0
  31. package/dist/SliderField-Df5hMzNc.js +34 -0
  32. package/dist/SummaryField-DgiFm-Cr.js +19 -0
  33. package/dist/TextAreaField-DuriTqsD.js +36 -0
  34. package/dist/TextField-CGNSl7RU.js +29 -0
  35. package/dist/TimeField-YO58ctFg.js +21 -0
  36. package/dist/UrlField-1-BMM1jn.js +33 -0
  37. package/dist/UserField-B6GqxP_S.js +78 -0
  38. package/dist/VectorField-BkEjbSt0.js +36 -0
  39. package/dist/index.js +4092 -33
  40. package/dist/index.umd.cjs +88 -81
  41. package/dist/plugin-detail.css +3 -1
  42. package/dist/src/DetailSection.d.ts +10 -0
  43. package/dist/src/DetailSection.d.ts.map +1 -1
  44. package/dist/src/HeaderHighlight.d.ts +2 -0
  45. package/dist/src/HeaderHighlight.d.ts.map +1 -1
  46. package/dist/src/RecordChatterPanel.d.ts +2 -0
  47. package/dist/src/RecordChatterPanel.d.ts.map +1 -1
  48. package/dist/src/autoLayout.d.ts +10 -3
  49. package/dist/src/autoLayout.d.ts.map +1 -1
  50. package/dist/src/index.d.ts +1 -1
  51. package/dist/src/index.d.ts.map +1 -1
  52. package/dist/src-CXr1-vVl.js +77662 -0
  53. package/package.json +10 -10
  54. package/src/DetailSection.tsx +40 -1
  55. package/src/DetailView.tsx +1 -1
  56. package/src/HeaderHighlight.tsx +22 -1
  57. package/src/RecordChatterPanel.tsx +6 -1
  58. package/src/RelatedList.tsx +1 -1
  59. package/src/__tests__/DetailSection.test.tsx +61 -0
  60. package/src/__tests__/HeaderHighlight.test.tsx +145 -0
  61. package/src/__tests__/RecordChatterPanel.test.tsx +38 -0
  62. package/src/__tests__/RelatedList.test.tsx +3 -3
  63. package/src/__tests__/autoLayout.test.ts +44 -0
  64. package/src/autoLayout.ts +25 -8
  65. package/src/index.tsx +1 -1
  66. package/dist/AddressField-QBIlXCFl.js +0 -96
  67. package/dist/AutoNumberField-BxnFqllo.js +0 -8
  68. package/dist/AvatarField-BEZuQTAH.js +0 -82
  69. package/dist/BooleanField-doa93aFX.js +0 -37
  70. package/dist/CodeField-jVV-hIXg.js +0 -21
  71. package/dist/ColorField-B53qKQGW.js +0 -42
  72. package/dist/CurrencyField-og0NJ2ax.js +0 -43
  73. package/dist/DateField-BFx64AtG.js +0 -21
  74. package/dist/DateTimeField-Cxs2Rx2f.js +0 -28
  75. package/dist/EmailField-BfcpzRe7.js +0 -31
  76. package/dist/FileField-KarqvhYm.js +0 -133
  77. package/dist/FormulaField-CJkkwIK8.js +0 -9
  78. package/dist/GeolocationField-B5SKZaqn.js +0 -123
  79. package/dist/GridField-DOotrUTo.js +0 -30
  80. package/dist/ImageField-Ddotp4u-.js +0 -90
  81. package/dist/LocationField-tOkQaPIM.js +0 -31
  82. package/dist/LookupField-DF36GvIP.js +0 -96
  83. package/dist/MasterDetailField-CpHw3nTE.js +0 -108
  84. package/dist/NumberField-CzBb2a28.js +0 -26
  85. package/dist/ObjectField-BoL-JqE4.js +0 -48
  86. package/dist/PasswordField-DrTzkYgj.js +0 -38
  87. package/dist/PercentField-B9ZUQ3zE.js +0 -63
  88. package/dist/PhoneField-Bf9lhpdu.js +0 -31
  89. package/dist/QRCodeField-PzMpdBKd.js +0 -77
  90. package/dist/RatingField-CeBMFe8o.js +0 -47
  91. package/dist/RichTextField-Ch7CHSQ0.js +0 -38
  92. package/dist/SelectField-f5Nbi02x.js +0 -26
  93. package/dist/SignatureField-CpxTX2tR.js +0 -85
  94. package/dist/SliderField-BoZtzgcr.js +0 -30
  95. package/dist/SummaryField-ugYPYxjP.js +0 -9
  96. package/dist/TextAreaField-rT1DLnV2.js +0 -39
  97. package/dist/TextField-CflRxusu.js +0 -32
  98. package/dist/TimeField-DeVeCpRu.js +0 -21
  99. package/dist/UrlField-UWKfhP9T.js +0 -33
  100. package/dist/UserField-Cp2zQDjz.js +0 -49
  101. package/dist/VectorField-CKg9jdGa.js +0 -25
  102. package/dist/index-V_WBvcaA.js +0 -100249
@@ -1,55 +1,61 @@
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.4 build /home/runner/work/objectui/objectui/packages/plugin-detail
3
3
  > vite build
4
4
 
5
- vite v7.3.1 building client environment for production...
6
- transforming...
7
- ✓ 3850 modules transformed.
5
+ vite v8.0.1 building client environment for production...
6
+ 
8
7
  rendering chunks...
9
8
  
10
9
  [vite:dts] Start generate declaration files...
10
+ [vite:dts] Declaration files built in 24441ms.
11
+ 
11
12
  computing gzip size...
12
- [vite:dts] Declaration files built in 28757ms.
13
+ dist/plugin-detail.css 123.64 kB gzip: 20.28 kB
14
+ dist/AutoNumberField-Baa191z-.js 0.45 kB │ gzip: 0.32 kB
15
+ dist/TimeField-YO58ctFg.js 0.58 kB │ gzip: 0.37 kB
16
+ dist/DateField-Cth1ky_m.js 0.61 kB │ gzip: 0.39 kB
17
+ dist/SummaryField-DgiFm-Cr.js 0.63 kB │ gzip: 0.42 kB
18
+ dist/FormulaField-DTMkagFx.js 0.67 kB │ gzip: 0.43 kB
19
+ dist/NumberField-D_NucQlp.js 0.73 kB │ gzip: 0.45 kB
20
+ dist/DateTimeField-B0m6FhHL.js 0.80 kB │ gzip: 0.44 kB
21
+ dist/CodeField-BU51nl1L.js 0.82 kB │ gzip: 0.49 kB
22
+ dist/PhoneField-CcQAWwR6.js 0.83 kB │ gzip: 0.50 kB
23
+ dist/EmailField-Do7qT_L_.js 0.84 kB │ gzip: 0.49 kB
24
+ dist/TextField-CGNSl7RU.js 0.86 kB │ gzip: 0.45 kB
25
+ dist/VectorField-BkEjbSt0.js 0.94 kB │ gzip: 0.50 kB
26
+ dist/SelectField-C8hWu3gm.js 0.96 kB │ gzip: 0.51 kB
27
+ dist/LocationField-Bi_ew9sd.js 0.99 kB │ gzip: 0.56 kB
28
+ dist/UrlField-1-BMM1jn.js 1.00 kB │ gzip: 0.53 kB
29
+ dist/SliderField-Df5hMzNc.js 1.06 kB │ gzip: 0.51 kB
30
+ dist/TextAreaField-DuriTqsD.js 1.08 kB │ gzip: 0.60 kB
31
+ dist/RichTextField-qOEJl5Ai.js 1.14 kB │ gzip: 0.60 kB
32
+ dist/PasswordField-DBtluGJ1.js 1.15 kB │ gzip: 0.64 kB
33
+ dist/BooleanField-CaA898Tk.js 1.16 kB │ gzip: 0.53 kB
34
+ dist/ColorField-Cnf6ZM7c.js 1.22 kB │ gzip: 0.56 kB
35
+ dist/CurrencyField-Wg-XOId2.js 1.50 kB │ gzip: 0.77 kB
36
+ dist/RatingField-B_Mnr63i.js 1.60 kB │ gzip: 0.68 kB
37
+ dist/ObjectField-CG-LaM65.js 1.60 kB │ gzip: 0.79 kB
38
+ dist/PercentField-B6sO_J3i.js 1.80 kB │ gzip: 0.85 kB
39
+ dist/GridField-D4IH0cpo.js 1.87 kB │ gzip: 0.73 kB
40
+ dist/QRCodeField-CEjWs-J5.js 2.20 kB │ gzip: 0.93 kB
41
+ dist/AvatarField-YGj51ozd.js 2.45 kB │ gzip: 1.10 kB
42
+ dist/UserField-B6GqxP_S.js 2.49 kB │ gzip: 0.95 kB
43
+ dist/ImageField-BYCFajjr.js 2.50 kB │ gzip: 1.09 kB
44
+ dist/AddressField-DBkEyMcG.js 2.72 kB │ gzip: 0.79 kB
45
+ dist/SignatureField-CddhEK9u.js 2.88 kB │ gzip: 1.14 kB
46
+ dist/MasterDetailField-I1A9oEGC.js 2.97 kB │ gzip: 0.98 kB
47
+ dist/GeolocationField-RqpHWTEv.js 3.39 kB │ gzip: 1.23 kB
48
+ dist/FileField-aRJAdbQb.js 5.24 kB │ gzip: 1.93 kB
49
+ dist/LookupField-BjwlDPtt.js 30.97 kB │ gzip: 8.40 kB
50
+ dist/index.js 136.85 kB │ gzip: 30.20 kB
51
+ dist/src-CXr1-vVl.js 1,991.26 kB │ gzip: 466.55 kB
52
+
53
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugin `vite:dts`. See https://rolldown.rs/options/checks#plugintimings for more details.
13
54
  
14
- dist/plugin-detail.css  122.75 kB │ gzip: 20.06 kB
15
- dist/AutoNumberField-BxnFqllo.js  0.29 kB │ gzip: 0.24 kB
16
- dist/SummaryField-ugYPYxjP.js  0.49 kB │ gzip: 0.34 kB
17
- dist/TimeField-DeVeCpRu.js  0.52 kB │ gzip: 0.33 kB
18
- 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
23
- 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
55
+ 
56
+ rendering chunks...
57
+ computing gzip size...
58
+ dist/plugin-detail.css 123.64 kB │ gzip: 20.28 kB
59
+ dist/index.umd.cjs 2,766.12 kB │ gzip: 743.87 kB
60
+
61
+ ✓ built in 31.85s
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @object-ui/plugin-detail
2
2
 
3
+ ## 3.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - @object-ui/types@3.1.4
8
+ - @object-ui/core@3.1.4
9
+ - @object-ui/react@3.1.4
10
+ - @object-ui/components@3.1.4
11
+ - @object-ui/fields@3.1.4
12
+
13
+ ## 3.1.3
14
+
15
+ ### Patch Changes
16
+
17
+ - @object-ui/types@3.1.3
18
+ - @object-ui/core@3.1.3
19
+ - @object-ui/react@3.1.3
20
+ - @object-ui/components@3.1.3
21
+ - @object-ui/fields@3.1.3
22
+
3
23
  ## 3.1.2
4
24
 
5
25
  ### Patch Changes
@@ -0,0 +1,93 @@
1
+ import { D as e, O as t, hn as n } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/AddressField.tsx
5
+ var a = /* @__PURE__ */ n({ AddressField: () => o });
6
+ function o({ value: n, onChange: a, field: o, readonly: s, ...c }) {
7
+ let l = n || {}, u = (e, t) => {
8
+ a({
9
+ ...l,
10
+ [e]: t
11
+ });
12
+ };
13
+ return s ? /* @__PURE__ */ r("span", {
14
+ className: "text-sm",
15
+ children: ((e) => [
16
+ e.street,
17
+ e.city,
18
+ [e.state, e.zipCode].filter(Boolean).join(" "),
19
+ e.country
20
+ ].filter(Boolean).join(", ") || "-")(l)
21
+ }) : /* @__PURE__ */ i("div", {
22
+ className: "space-y-3",
23
+ children: [
24
+ /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r(t, {
25
+ htmlFor: "street",
26
+ className: "text-xs",
27
+ children: "Street Address"
28
+ }), /* @__PURE__ */ r(e, {
29
+ id: "street",
30
+ type: "text",
31
+ value: l.street || "",
32
+ onChange: (e) => u("street", e.target.value),
33
+ placeholder: "123 Main St",
34
+ disabled: s || c.disabled,
35
+ className: c.className
36
+ })] }),
37
+ /* @__PURE__ */ i("div", {
38
+ className: "grid grid-cols-2 gap-3",
39
+ children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r(t, {
40
+ htmlFor: "city",
41
+ className: "text-xs",
42
+ children: "City"
43
+ }), /* @__PURE__ */ r(e, {
44
+ id: "city",
45
+ type: "text",
46
+ value: l.city || "",
47
+ onChange: (e) => u("city", e.target.value),
48
+ placeholder: "San Francisco",
49
+ disabled: s || c.disabled
50
+ })] }), /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r(t, {
51
+ htmlFor: "state",
52
+ className: "text-xs",
53
+ children: "State / Province"
54
+ }), /* @__PURE__ */ r(e, {
55
+ id: "state",
56
+ type: "text",
57
+ value: l.state || "",
58
+ onChange: (e) => u("state", e.target.value),
59
+ placeholder: "CA",
60
+ disabled: s || c.disabled
61
+ })] })]
62
+ }),
63
+ /* @__PURE__ */ i("div", {
64
+ className: "grid grid-cols-2 gap-3",
65
+ children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r(t, {
66
+ htmlFor: "zipCode",
67
+ className: "text-xs",
68
+ children: "ZIP / Postal Code"
69
+ }), /* @__PURE__ */ r(e, {
70
+ id: "zipCode",
71
+ type: "text",
72
+ value: l.zipCode || "",
73
+ onChange: (e) => u("zipCode", e.target.value),
74
+ placeholder: "94102",
75
+ disabled: s || c.disabled
76
+ })] }), /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r(t, {
77
+ htmlFor: "country",
78
+ className: "text-xs",
79
+ children: "Country"
80
+ }), /* @__PURE__ */ r(e, {
81
+ id: "country",
82
+ type: "text",
83
+ value: l.country || "",
84
+ onChange: (e) => u("country", e.target.value),
85
+ placeholder: "United States",
86
+ disabled: s || c.disabled
87
+ })] })]
88
+ })
89
+ ]
90
+ });
91
+ }
92
+ //#endregion
93
+ export { a as t };
@@ -0,0 +1,14 @@
1
+ import { hn as e } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/AutoNumberField.tsx
5
+ var n = /* @__PURE__ */ e({ AutoNumberField: () => r });
6
+ function r({ value: e, field: n, ...r }) {
7
+ let i = e == null ? "-" : String(e);
8
+ return /* @__PURE__ */ t("span", {
9
+ className: `text-sm font-mono text-gray-700 ${r.className || ""}`,
10
+ children: i
11
+ });
12
+ }
13
+ //#endregion
14
+ export { n as t };
@@ -0,0 +1,80 @@
1
+ import { $ as e, J as t, X as n, Y as r, Z as i, et as a, hn as o } from "./src-CXr1-vVl.js";
2
+ import s from "react";
3
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/AvatarField.tsx
5
+ var u = /* @__PURE__ */ o({ AvatarField: () => d });
6
+ function d({ value: o, onChange: u, field: d, readonly: f, ...p }) {
7
+ let [m, h] = s.useState(!1), g = s.useRef(null), _ = d || p.schema, v = (e) => {
8
+ let t = e.target.files?.[0];
9
+ if (!t) return;
10
+ if (!t.type.startsWith("image/")) {
11
+ console.error("Please select an image file");
12
+ return;
13
+ }
14
+ if (t.size > 5 * 1024 * 1024) {
15
+ console.error("File size must be less than 5MB");
16
+ return;
17
+ }
18
+ let n = new FileReader();
19
+ n.onloadend = () => {
20
+ u(n.result);
21
+ }, n.readAsDataURL(t);
22
+ }, y = () => {
23
+ u("");
24
+ }, b = () => (_?.defaultName || _?.label || "User").split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2);
25
+ return f ? /* @__PURE__ */ l(t, {
26
+ className: "w-16 h-16",
27
+ children: [o && /* @__PURE__ */ c(n, {
28
+ src: o,
29
+ alt: _?.label
30
+ }), /* @__PURE__ */ c(r, { children: b() })]
31
+ }) : /* @__PURE__ */ l("div", {
32
+ className: "flex items-center gap-4",
33
+ children: [/* @__PURE__ */ l("div", {
34
+ className: "relative",
35
+ onMouseEnter: () => h(!0),
36
+ onMouseLeave: () => h(!1),
37
+ children: [/* @__PURE__ */ l(t, {
38
+ className: "w-16 h-16",
39
+ children: [o && /* @__PURE__ */ c(n, {
40
+ src: o,
41
+ alt: _?.label
42
+ }), /* @__PURE__ */ c(r, { children: b() })]
43
+ }), !f && m && o && /* @__PURE__ */ c("button", {
44
+ type: "button",
45
+ onClick: y,
46
+ className: "absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90",
47
+ children: /* @__PURE__ */ c(e, { className: "w-3 h-3" })
48
+ })]
49
+ }), /* @__PURE__ */ l("div", {
50
+ className: "flex flex-col gap-2",
51
+ children: [
52
+ /* @__PURE__ */ c("input", {
53
+ ref: g,
54
+ type: "file",
55
+ accept: "image/*",
56
+ onChange: v,
57
+ className: "hidden"
58
+ }),
59
+ /* @__PURE__ */ l(i, {
60
+ type: "button",
61
+ variant: "outline",
62
+ size: "sm",
63
+ onClick: () => g.current?.click(),
64
+ disabled: f || p.disabled,
65
+ children: [
66
+ /* @__PURE__ */ c(a, { className: "w-4 h-4 mr-2" }),
67
+ o ? "Change" : "Upload",
68
+ " Avatar"
69
+ ]
70
+ }),
71
+ /* @__PURE__ */ c("p", {
72
+ className: "text-xs text-muted-foreground",
73
+ children: "PNG, JPG up to 5MB"
74
+ })
75
+ ]
76
+ })]
77
+ });
78
+ }
79
+ //#endregion
80
+ export { u as t };
@@ -0,0 +1,40 @@
1
+ import { H as e, O as t, f as n, hn as r } from "./src-CXr1-vVl.js";
2
+ import { useId as i } from "react";
3
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/BooleanField.tsx
5
+ var s = /* @__PURE__ */ r({ BooleanField: () => c });
6
+ function c({ value: r, onChange: s, field: c, readonly: l, ...u }) {
7
+ let d = c || u.schema, f = d?.widget, p = i(), m = d?.name || p, h = d?.label || "Checkbox";
8
+ if (l) return /* @__PURE__ */ a("span", {
9
+ className: "text-sm",
10
+ children: r ? "Yes" : "No"
11
+ });
12
+ let { inputType: g, ..._ } = u;
13
+ return f === "checkbox" ? /* @__PURE__ */ o("div", {
14
+ className: "flex items-center space-x-2",
15
+ children: [/* @__PURE__ */ a(e, {
16
+ ..._,
17
+ id: m,
18
+ checked: !!r,
19
+ onCheckedChange: (e) => s(!!e),
20
+ disabled: l || _.disabled
21
+ }), /* @__PURE__ */ a(t, {
22
+ htmlFor: m,
23
+ children: h
24
+ })]
25
+ }) : /* @__PURE__ */ o("div", {
26
+ className: "flex items-center space-x-2",
27
+ children: [/* @__PURE__ */ a(n, {
28
+ ..._,
29
+ id: m,
30
+ checked: !!r,
31
+ onCheckedChange: s,
32
+ disabled: l || _.disabled
33
+ }), /* @__PURE__ */ a(t, {
34
+ htmlFor: m,
35
+ children: h
36
+ })]
37
+ });
38
+ }
39
+ //#endregion
40
+ export { s as t };
@@ -0,0 +1,22 @@
1
+ import { hn as e, t, un as n } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/CodeField.tsx
5
+ var i = /* @__PURE__ */ e({ CodeField: () => a });
6
+ function a({ value: e, onChange: i, field: a, readonly: o, ...s }) {
7
+ let c = a || s.schema, l = c?.language ?? "javascript";
8
+ return o ? /* @__PURE__ */ r("pre", {
9
+ className: n("text-sm bg-muted p-2 rounded overflow-x-auto border", s.className),
10
+ children: /* @__PURE__ */ r("code", { children: e || "-" })
11
+ }) : /* @__PURE__ */ r(t, {
12
+ value: e || "",
13
+ onChange: (e) => i(e.target.value),
14
+ placeholder: c?.placeholder || `// Write ${l} code here...`,
15
+ disabled: o || s.disabled,
16
+ className: n("font-mono text-sm", s.className),
17
+ rows: 12,
18
+ spellCheck: !1
19
+ });
20
+ }
21
+ //#endregion
22
+ export { i as t };
@@ -0,0 +1,37 @@
1
+ import { D as e, hn as t } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/ColorField.tsx
5
+ var i = /* @__PURE__ */ t({ ColorField: () => a });
6
+ function a({ value: t, onChange: i, field: a, readonly: o, ...s }) {
7
+ let c = a || s.schema;
8
+ return o ? /* @__PURE__ */ r("div", {
9
+ className: "flex items-center gap-2",
10
+ children: [/* @__PURE__ */ n("div", {
11
+ className: "w-6 h-6 rounded border border-input",
12
+ style: { backgroundColor: t || "#000000" }
13
+ }), /* @__PURE__ */ n("span", {
14
+ className: "text-sm",
15
+ children: t || "-"
16
+ })]
17
+ }) : /* @__PURE__ */ r("div", {
18
+ className: "flex items-center gap-2",
19
+ children: [/* @__PURE__ */ n("input", {
20
+ type: "color",
21
+ value: t || "#000000",
22
+ onChange: (e) => i(e.target.value),
23
+ disabled: o || s.disabled,
24
+ className: "w-10 h-10 rounded border border-input cursor-pointer"
25
+ }), /* @__PURE__ */ n(e, {
26
+ type: "text",
27
+ value: t || "",
28
+ onChange: (e) => i(e.target.value),
29
+ placeholder: c?.placeholder || "#000000",
30
+ disabled: o || s.disabled,
31
+ className: s.className,
32
+ pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
33
+ })]
34
+ });
35
+ }
36
+ //#endregion
37
+ export { i as t };
@@ -0,0 +1,51 @@
1
+ import { D as e, hn as t } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/CurrencyField.tsx
5
+ var i = /* @__PURE__ */ t({ CurrencyField: () => o });
6
+ function a(e, t = "USD") {
7
+ try {
8
+ return new Intl.NumberFormat("en-US", {
9
+ style: "currency",
10
+ currency: t
11
+ }).format(e);
12
+ } catch {
13
+ return `${t} ${e.toFixed(2)}`;
14
+ }
15
+ }
16
+ function o({ value: t, onChange: i, field: o, readonly: s, errorMessage: c, className: l, ...u }) {
17
+ let d = o || u.schema, f = d?.currency || "USD", p = d?.precision ?? 2;
18
+ if (s) return t == null ? /* @__PURE__ */ n("span", {
19
+ className: "text-sm",
20
+ children: "-"
21
+ }) : /* @__PURE__ */ n("span", {
22
+ className: "text-sm font-medium tabular-nums",
23
+ children: a(Number(t), f)
24
+ });
25
+ let m = (e) => {
26
+ let t = parseFloat(e.target.value);
27
+ isNaN(t) || i(parseFloat(t.toFixed(p)));
28
+ };
29
+ return /* @__PURE__ */ r("div", {
30
+ className: "relative",
31
+ children: [/* @__PURE__ */ n("span", {
32
+ className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500",
33
+ children: f === "USD" ? "$" : f
34
+ }), /* @__PURE__ */ n(e, {
35
+ ...u,
36
+ type: "number",
37
+ value: t ?? "",
38
+ onChange: (e) => {
39
+ i(e.target.value === "" ? null : parseFloat(e.target.value));
40
+ },
41
+ onBlur: m,
42
+ placeholder: d?.placeholder || "0.00",
43
+ disabled: s || u.disabled,
44
+ className: `pl-8 ${l || ""}`,
45
+ step: (10 ** -p).toFixed(p),
46
+ "aria-invalid": !!c
47
+ })]
48
+ });
49
+ }
50
+ //#endregion
51
+ export { i as t };
@@ -0,0 +1,21 @@
1
+ import { D as e, hn as t } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/DateField.tsx
5
+ var r = /* @__PURE__ */ t({ DateField: () => i });
6
+ function i({ value: t, onChange: r, field: i, readonly: a, ...o }) {
7
+ if (a) return /* @__PURE__ */ n("span", {
8
+ className: "text-sm",
9
+ children: t ? new Date(t).toLocaleDateString() : "-"
10
+ });
11
+ let { inputType: s, ...c } = o;
12
+ return /* @__PURE__ */ n(e, {
13
+ ...c,
14
+ type: "date",
15
+ value: t || "",
16
+ onChange: (e) => r(e.target.value),
17
+ disabled: a || c.disabled
18
+ });
19
+ }
20
+ //#endregion
21
+ export { r as t };
@@ -0,0 +1,32 @@
1
+ import { D as e, hn as t } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/DateTimeField.tsx
5
+ var i = /* @__PURE__ */ t({ DateTimeField: () => a });
6
+ function a({ value: t, onChange: i, field: a, readonly: o, ...s }) {
7
+ if (o) {
8
+ if (!t) return /* @__PURE__ */ n("span", {
9
+ className: "text-sm",
10
+ children: "-"
11
+ });
12
+ let e = new Date(t);
13
+ return /* @__PURE__ */ r("span", {
14
+ className: "text-sm",
15
+ children: [
16
+ e.toLocaleDateString(),
17
+ " ",
18
+ e.toLocaleTimeString()
19
+ ]
20
+ });
21
+ }
22
+ let { inputType: c, ...l } = s;
23
+ return /* @__PURE__ */ n(e, {
24
+ ...l,
25
+ type: "datetime-local",
26
+ value: t || "",
27
+ onChange: (e) => i(e.target.value),
28
+ disabled: o || l.disabled
29
+ });
30
+ }
31
+ //#endregion
32
+ export { i as t };
@@ -0,0 +1,28 @@
1
+ import { D as e, hn as t } from "./src-CXr1-vVl.js";
2
+ import "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region ../fields/src/widgets/EmailField.tsx
5
+ var r = /* @__PURE__ */ t({ EmailField: () => i });
6
+ function i({ value: t, onChange: r, field: i, readonly: a, errorMessage: o, ...s }) {
7
+ let c = i || s.schema;
8
+ if (a) return t ? /* @__PURE__ */ n("a", {
9
+ href: `mailto:${t}`,
10
+ className: "text-sm text-blue-600 hover:text-blue-800 hover:underline",
11
+ children: t
12
+ }) : /* @__PURE__ */ n("span", {
13
+ className: "text-sm",
14
+ children: "-"
15
+ });
16
+ let { inputType: l, ...u } = s;
17
+ return /* @__PURE__ */ n(e, {
18
+ ...u,
19
+ type: "email",
20
+ value: t || "",
21
+ onChange: (e) => r(e.target.value),
22
+ placeholder: c?.placeholder || "email@example.com",
23
+ disabled: a || u.disabled,
24
+ "aria-invalid": !!o
25
+ });
26
+ }
27
+ //#endregion
28
+ export { r as t };