@object-ui/plugin-detail 3.1.5 → 3.3.1

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 (209) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +21 -1
  3. package/dist/AddressField-LgHnO2Lk.js +98 -0
  4. package/dist/AutoNumberField-xZCrU0eW.js +14 -0
  5. package/dist/{AvatarField-YGj51ozd.js → AvatarField-Dy2XGlPz.js} +16 -15
  6. package/dist/{BooleanField-CaA898Tk.js → BooleanField-C0Clfka5.js} +11 -10
  7. package/dist/CodeField-CHUa07B6.js +23 -0
  8. package/dist/ColorField-vxHqEhcS.js +38 -0
  9. package/dist/CurrencyField-DiWjYWDo.js +49 -0
  10. package/dist/DateField-DGaRPM4P.js +22 -0
  11. package/dist/DateTimeField-8QnpsI_h.js +30 -0
  12. package/dist/EmailField-CkVgMbpI.js +26 -0
  13. package/dist/FileField-5UPV7uek.js +149 -0
  14. package/dist/FormulaField-BUgt6-Pi.js +17 -0
  15. package/dist/GeolocationField-D9T_jgG6.js +118 -0
  16. package/dist/GridField-DE_HwiIN.js +49 -0
  17. package/dist/ImageField-Dswnqtzf.js +73 -0
  18. package/dist/LocationField-gjqbE6na.js +36 -0
  19. package/dist/LookupField-BcS3LRKc.js +901 -0
  20. package/dist/{MasterDetailField-I1A9oEGC.js → MasterDetailField-BF6_-X3A.js} +20 -19
  21. package/dist/NumberField-Dj2rYmrS.js +27 -0
  22. package/dist/ObjectField-BymIojwd.js +50 -0
  23. package/dist/{PasswordField-DBtluGJ1.js → PasswordField-ED_Xgqz-.js} +8 -7
  24. package/dist/PercentField-D-JKOxKC.js +61 -0
  25. package/dist/PhoneField-DSCaGYq7.js +26 -0
  26. package/dist/QRCodeField-CtcOUapi.js +73 -0
  27. package/dist/{RatingField-B_Mnr63i.js → RatingField-BDnyQFWy.js} +10 -9
  28. package/dist/RichTextField-CH6LVZQA.js +33 -0
  29. package/dist/SelectField-DE4dpkMV.js +36 -0
  30. package/dist/{SignatureField-CddhEK9u.js → SignatureField-B1wh3f5A.js} +18 -17
  31. package/dist/{SliderField-Df5hMzNc.js → SliderField-zoTCKh9n.js} +2 -1
  32. package/dist/SummaryField-BeBVT6VN.js +22 -0
  33. package/dist/TextAreaField-rfUGrRxh.js +37 -0
  34. package/dist/TextField-C_yM7ATQ.js +30 -0
  35. package/dist/TimeField-BcQmBZi9.js +22 -0
  36. package/dist/UrlField-BakaF6NI.js +31 -0
  37. package/dist/UserField-zS7y3eKb.js +76 -0
  38. package/dist/VectorField-CTZ4myDM.js +34 -0
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.js +1741 -1504
  41. package/dist/index.umd.cjs +43 -51
  42. package/dist/packages/plugin-detail/src/ActivityTimeline.d.ts.map +1 -0
  43. package/dist/packages/plugin-detail/src/CommentAttachment.d.ts.map +1 -0
  44. package/dist/packages/plugin-detail/src/CommentInput.d.ts.map +1 -0
  45. package/dist/packages/plugin-detail/src/DetailSection.d.ts.map +1 -0
  46. package/dist/packages/plugin-detail/src/DetailTabs.d.ts.map +1 -0
  47. package/dist/packages/plugin-detail/src/DetailView.d.ts +47 -0
  48. package/dist/packages/plugin-detail/src/DetailView.d.ts.map +1 -0
  49. package/dist/packages/plugin-detail/src/DetailView.stories.d.ts.map +1 -0
  50. package/dist/packages/plugin-detail/src/DiffView.d.ts.map +1 -0
  51. package/dist/packages/plugin-detail/src/FieldChangeItem.d.ts.map +1 -0
  52. package/dist/packages/plugin-detail/src/HeaderHighlight.d.ts.map +1 -0
  53. package/dist/packages/plugin-detail/src/InlineCreateRelated.d.ts.map +1 -0
  54. package/dist/packages/plugin-detail/src/MentionAutocomplete.d.ts.map +1 -0
  55. package/dist/packages/plugin-detail/src/PointInTimeRestore.d.ts.map +1 -0
  56. package/dist/packages/plugin-detail/src/ReactionPicker.d.ts.map +1 -0
  57. package/dist/packages/plugin-detail/src/RecordActivityTimeline.d.ts.map +1 -0
  58. package/dist/packages/plugin-detail/src/RecordChatterPanel.d.ts.map +1 -0
  59. package/dist/packages/plugin-detail/src/RecordComments.d.ts.map +1 -0
  60. package/dist/packages/plugin-detail/src/RecordNavigationEnhanced.d.ts.map +1 -0
  61. package/dist/{src → packages/plugin-detail/src}/RelatedList.d.ts +8 -0
  62. package/dist/packages/plugin-detail/src/RelatedList.d.ts.map +1 -0
  63. package/dist/packages/plugin-detail/src/RelationshipGraph.d.ts.map +1 -0
  64. package/dist/packages/plugin-detail/src/RichTextCommentInput.d.ts.map +1 -0
  65. package/dist/packages/plugin-detail/src/SectionGroup.d.ts.map +1 -0
  66. package/dist/packages/plugin-detail/src/SubscriptionToggle.d.ts.map +1 -0
  67. package/dist/packages/plugin-detail/src/ThreadedReplies.d.ts.map +1 -0
  68. package/dist/packages/plugin-detail/src/autoLayout.d.ts.map +1 -0
  69. package/dist/packages/plugin-detail/src/index.d.ts.map +1 -0
  70. package/dist/packages/plugin-detail/src/useDetailTranslation.d.ts.map +1 -0
  71. package/dist/plugin-detail.css +1 -2
  72. package/dist/rolldown-runtime-DnwLefa7.js +23 -0
  73. package/dist/{src-CXr1-vVl.js → src-DyUKLvMN.js} +29788 -37711
  74. package/dist/useFieldTranslation-BRgjC1oq.js +9 -0
  75. package/package.json +34 -12
  76. package/.turbo/turbo-build.log +0 -61
  77. package/dist/AddressField-DBkEyMcG.js +0 -93
  78. package/dist/AutoNumberField-Baa191z-.js +0 -14
  79. package/dist/CodeField-BU51nl1L.js +0 -22
  80. package/dist/ColorField-Cnf6ZM7c.js +0 -37
  81. package/dist/CurrencyField-Wg-XOId2.js +0 -51
  82. package/dist/DateField-Cth1ky_m.js +0 -21
  83. package/dist/DateTimeField-B0m6FhHL.js +0 -32
  84. package/dist/EmailField-Do7qT_L_.js +0 -28
  85. package/dist/FileField-aRJAdbQb.js +0 -151
  86. package/dist/FormulaField-DTMkagFx.js +0 -14
  87. package/dist/GeolocationField-RqpHWTEv.js +0 -113
  88. package/dist/GridField-D4IH0cpo.js +0 -51
  89. package/dist/ImageField-BYCFajjr.js +0 -75
  90. package/dist/LocationField-Bi_ew9sd.js +0 -35
  91. package/dist/LookupField-BjwlDPtt.js +0 -902
  92. package/dist/NumberField-D_NucQlp.js +0 -26
  93. package/dist/ObjectField-CG-LaM65.js +0 -52
  94. package/dist/PercentField-B6sO_J3i.js +0 -63
  95. package/dist/PhoneField-CcQAWwR6.js +0 -28
  96. package/dist/QRCodeField-CEjWs-J5.js +0 -72
  97. package/dist/RichTextField-qOEJl5Ai.js +0 -32
  98. package/dist/SelectField-C8hWu3gm.js +0 -30
  99. package/dist/SummaryField-DgiFm-Cr.js +0 -19
  100. package/dist/TextAreaField-DuriTqsD.js +0 -36
  101. package/dist/TextField-CGNSl7RU.js +0 -29
  102. package/dist/TimeField-YO58ctFg.js +0 -21
  103. package/dist/UrlField-1-BMM1jn.js +0 -33
  104. package/dist/UserField-B6GqxP_S.js +0 -78
  105. package/dist/VectorField-BkEjbSt0.js +0 -36
  106. package/dist/src/ActivityTimeline.d.ts.map +0 -1
  107. package/dist/src/CommentAttachment.d.ts.map +0 -1
  108. package/dist/src/CommentInput.d.ts.map +0 -1
  109. package/dist/src/DetailSection.d.ts.map +0 -1
  110. package/dist/src/DetailTabs.d.ts.map +0 -1
  111. package/dist/src/DetailView.d.ts +0 -23
  112. package/dist/src/DetailView.d.ts.map +0 -1
  113. package/dist/src/DetailView.stories.d.ts.map +0 -1
  114. package/dist/src/DiffView.d.ts.map +0 -1
  115. package/dist/src/FieldChangeItem.d.ts.map +0 -1
  116. package/dist/src/HeaderHighlight.d.ts.map +0 -1
  117. package/dist/src/InlineCreateRelated.d.ts.map +0 -1
  118. package/dist/src/MentionAutocomplete.d.ts.map +0 -1
  119. package/dist/src/PointInTimeRestore.d.ts.map +0 -1
  120. package/dist/src/ReactionPicker.d.ts.map +0 -1
  121. package/dist/src/RecordActivityTimeline.d.ts.map +0 -1
  122. package/dist/src/RecordChatterPanel.d.ts.map +0 -1
  123. package/dist/src/RecordComments.d.ts.map +0 -1
  124. package/dist/src/RecordNavigationEnhanced.d.ts.map +0 -1
  125. package/dist/src/RelatedList.d.ts.map +0 -1
  126. package/dist/src/RelationshipGraph.d.ts.map +0 -1
  127. package/dist/src/RichTextCommentInput.d.ts.map +0 -1
  128. package/dist/src/SectionGroup.d.ts.map +0 -1
  129. package/dist/src/SubscriptionToggle.d.ts.map +0 -1
  130. package/dist/src/ThreadedReplies.d.ts.map +0 -1
  131. package/dist/src/autoLayout.d.ts.map +0 -1
  132. package/dist/src/index.d.ts.map +0 -1
  133. package/dist/src/useDetailTranslation.d.ts.map +0 -1
  134. package/src/ActivityTimeline.tsx +0 -184
  135. package/src/CommentAttachment.tsx +0 -192
  136. package/src/CommentInput.tsx +0 -81
  137. package/src/DetailSection.tsx +0 -340
  138. package/src/DetailTabs.tsx +0 -73
  139. package/src/DetailView.stories.tsx +0 -334
  140. package/src/DetailView.tsx +0 -823
  141. package/src/DiffView.tsx +0 -231
  142. package/src/FieldChangeItem.tsx +0 -46
  143. package/src/HeaderHighlight.tsx +0 -88
  144. package/src/InlineCreateRelated.tsx +0 -291
  145. package/src/MentionAutocomplete.tsx +0 -123
  146. package/src/PointInTimeRestore.tsx +0 -261
  147. package/src/ReactionPicker.tsx +0 -106
  148. package/src/RecordActivityTimeline.tsx +0 -429
  149. package/src/RecordChatterPanel.tsx +0 -207
  150. package/src/RecordComments.tsx +0 -215
  151. package/src/RecordNavigationEnhanced.tsx +0 -211
  152. package/src/RelatedList.tsx +0 -413
  153. package/src/RelationshipGraph.tsx +0 -286
  154. package/src/RichTextCommentInput.tsx +0 -348
  155. package/src/SectionGroup.tsx +0 -101
  156. package/src/SubscriptionToggle.tsx +0 -60
  157. package/src/ThreadedReplies.tsx +0 -161
  158. package/src/__tests__/ActivityTimeline.test.tsx +0 -119
  159. package/src/__tests__/ActivityTimelineFiltering.test.tsx +0 -143
  160. package/src/__tests__/CommentInput.test.tsx +0 -57
  161. package/src/__tests__/DetailSection.test.tsx +0 -490
  162. package/src/__tests__/DetailView.test.tsx +0 -694
  163. package/src/__tests__/FieldChangeItem.test.tsx +0 -119
  164. package/src/__tests__/HeaderHighlight.test.tsx +0 -213
  165. package/src/__tests__/MentionAutocomplete.test.tsx +0 -97
  166. package/src/__tests__/ReactionPicker.test.tsx +0 -113
  167. package/src/__tests__/RecordActivityTimeline.test.tsx +0 -395
  168. package/src/__tests__/RecordChatterPanel.test.tsx +0 -265
  169. package/src/__tests__/RecordComments.test.tsx +0 -96
  170. package/src/__tests__/RecordCommentsPinSearch.test.tsx +0 -133
  171. package/src/__tests__/RelatedList.test.tsx +0 -160
  172. package/src/__tests__/SectionGroup.test.tsx +0 -101
  173. package/src/__tests__/SubscriptionToggle.test.tsx +0 -84
  174. package/src/__tests__/ThreadedReplies.test.tsx +0 -212
  175. package/src/__tests__/autoLayout.test.ts +0 -228
  176. package/src/__tests__/phase12-features.test.tsx +0 -583
  177. package/src/__tests__/roadmap-features.test.tsx +0 -478
  178. package/src/autoLayout.ts +0 -128
  179. package/src/index.tsx +0 -149
  180. package/src/useDetailTranslation.ts +0 -114
  181. package/tsconfig.json +0 -18
  182. package/vite.config.ts +0 -56
  183. package/vitest.config.ts +0 -13
  184. package/vitest.setup.ts +0 -1
  185. /package/dist/{src → packages/plugin-detail/src}/ActivityTimeline.d.ts +0 -0
  186. /package/dist/{src → packages/plugin-detail/src}/CommentAttachment.d.ts +0 -0
  187. /package/dist/{src → packages/plugin-detail/src}/CommentInput.d.ts +0 -0
  188. /package/dist/{src → packages/plugin-detail/src}/DetailSection.d.ts +0 -0
  189. /package/dist/{src → packages/plugin-detail/src}/DetailTabs.d.ts +0 -0
  190. /package/dist/{src → packages/plugin-detail/src}/DetailView.stories.d.ts +0 -0
  191. /package/dist/{src → packages/plugin-detail/src}/DiffView.d.ts +0 -0
  192. /package/dist/{src → packages/plugin-detail/src}/FieldChangeItem.d.ts +0 -0
  193. /package/dist/{src → packages/plugin-detail/src}/HeaderHighlight.d.ts +0 -0
  194. /package/dist/{src → packages/plugin-detail/src}/InlineCreateRelated.d.ts +0 -0
  195. /package/dist/{src → packages/plugin-detail/src}/MentionAutocomplete.d.ts +0 -0
  196. /package/dist/{src → packages/plugin-detail/src}/PointInTimeRestore.d.ts +0 -0
  197. /package/dist/{src → packages/plugin-detail/src}/ReactionPicker.d.ts +0 -0
  198. /package/dist/{src → packages/plugin-detail/src}/RecordActivityTimeline.d.ts +0 -0
  199. /package/dist/{src → packages/plugin-detail/src}/RecordChatterPanel.d.ts +0 -0
  200. /package/dist/{src → packages/plugin-detail/src}/RecordComments.d.ts +0 -0
  201. /package/dist/{src → packages/plugin-detail/src}/RecordNavigationEnhanced.d.ts +0 -0
  202. /package/dist/{src → packages/plugin-detail/src}/RelationshipGraph.d.ts +0 -0
  203. /package/dist/{src → packages/plugin-detail/src}/RichTextCommentInput.d.ts +0 -0
  204. /package/dist/{src → packages/plugin-detail/src}/SectionGroup.d.ts +0 -0
  205. /package/dist/{src → packages/plugin-detail/src}/SubscriptionToggle.d.ts +0 -0
  206. /package/dist/{src → packages/plugin-detail/src}/ThreadedReplies.d.ts +0 -0
  207. /package/dist/{src → packages/plugin-detail/src}/autoLayout.d.ts +0 -0
  208. /package/dist/{src → packages/plugin-detail/src}/index.d.ts +0 -0
  209. /package/dist/{src → packages/plugin-detail/src}/useDetailTranslation.d.ts +0 -0
@@ -0,0 +1,118 @@
1
+ import { n as e } from "./rolldown-runtime-DnwLefa7.js";
2
+ import { Ft as t, O as n, k as r, q as i, t as a, yt as o } from "./src-DyUKLvMN.js";
3
+ import s from "react";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ //#region ../fields/src/widgets/GeolocationField.tsx
6
+ var u = /* @__PURE__ */ e({ GeolocationField: () => d });
7
+ function d({ value: e, onChange: u, field: d, readonly: f, ...p }) {
8
+ let [m, h] = s.useState(!1), g = e || {}, _ = (e, t) => {
9
+ u({
10
+ ...g,
11
+ [e]: t ? Number(t) : void 0
12
+ });
13
+ }, v = () => {
14
+ if (!navigator.geolocation) {
15
+ console.error("Geolocation is not supported by this browser");
16
+ return;
17
+ }
18
+ h(!0), navigator.geolocation.getCurrentPosition((e) => {
19
+ u({
20
+ latitude: e.coords.latitude,
21
+ longitude: e.coords.longitude,
22
+ accuracy: e.coords.accuracy
23
+ }), h(!1);
24
+ }, (e) => {
25
+ console.error("Error getting location:", e.message), h(!1);
26
+ }, {
27
+ enableHighAccuracy: !0,
28
+ timeout: 5e3,
29
+ maximumAge: 0
30
+ });
31
+ }, y = (e) => !e.latitude || !e.longitude ? "" : `${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`, b = () => {
32
+ if (!g.latitude || !g.longitude) return;
33
+ let e = `https://www.google.com/maps?q=${g.latitude},${g.longitude}`;
34
+ window.open(e, "_blank");
35
+ };
36
+ if (f) {
37
+ let e = y(g);
38
+ return /* @__PURE__ */ l("div", {
39
+ className: "flex items-center gap-2",
40
+ children: [
41
+ /* @__PURE__ */ c(o, { className: "w-4 h-4 text-muted-foreground" }),
42
+ e ? /* @__PURE__ */ c("span", {
43
+ className: "text-sm",
44
+ children: e
45
+ }) : /* @__PURE__ */ c(a, {}),
46
+ g.latitude && g.longitude && /* @__PURE__ */ c(i, {
47
+ type: "button",
48
+ variant: "link",
49
+ size: "sm",
50
+ onClick: b,
51
+ className: "p-0 h-auto",
52
+ children: "View on map"
53
+ })
54
+ ]
55
+ });
56
+ }
57
+ return /* @__PURE__ */ l("div", {
58
+ className: "space-y-3",
59
+ children: [
60
+ /* @__PURE__ */ l("div", {
61
+ className: "flex items-center gap-2",
62
+ children: [/* @__PURE__ */ l(i, {
63
+ type: "button",
64
+ variant: "outline",
65
+ size: "sm",
66
+ onClick: v,
67
+ disabled: f || m,
68
+ children: [/* @__PURE__ */ c(t, { className: "w-4 h-4 mr-2" }), m ? "Getting location..." : "Use Current Location"]
69
+ }), g.latitude && g.longitude && /* @__PURE__ */ l(i, {
70
+ type: "button",
71
+ variant: "link",
72
+ size: "sm",
73
+ onClick: b,
74
+ children: [/* @__PURE__ */ c(o, { className: "w-4 h-4 mr-2" }), "View on map"]
75
+ })]
76
+ }),
77
+ /* @__PURE__ */ l("div", {
78
+ className: "grid grid-cols-2 gap-3",
79
+ children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c(r, {
80
+ htmlFor: "latitude",
81
+ className: "text-xs",
82
+ children: "Latitude"
83
+ }), /* @__PURE__ */ c(n, {
84
+ id: "latitude",
85
+ type: "number",
86
+ value: g.latitude ?? "",
87
+ onChange: (e) => _("latitude", e.target.value),
88
+ placeholder: "37.7749",
89
+ disabled: f || p.disabled,
90
+ step: "any",
91
+ className: p.className
92
+ })] }), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c(r, {
93
+ htmlFor: "longitude",
94
+ className: "text-xs",
95
+ children: "Longitude"
96
+ }), /* @__PURE__ */ c(n, {
97
+ id: "longitude",
98
+ type: "number",
99
+ value: g.longitude ?? "",
100
+ onChange: (e) => _("longitude", e.target.value),
101
+ placeholder: "-122.4194",
102
+ disabled: f || p.disabled,
103
+ step: "any"
104
+ })] })]
105
+ }),
106
+ g.accuracy && /* @__PURE__ */ l("p", {
107
+ className: "text-xs text-muted-foreground",
108
+ children: [
109
+ "Accuracy: ±",
110
+ g.accuracy.toFixed(0),
111
+ "m"
112
+ ]
113
+ })
114
+ ]
115
+ });
116
+ }
117
+ //#endregion
118
+ export { u as t };
@@ -0,0 +1,49 @@
1
+ import { n as e } from "./rolldown-runtime-DnwLefa7.js";
2
+ import { an as t, t as n } from "./src-DyUKLvMN.js";
3
+ import "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region ../fields/src/widgets/GridField.tsx
6
+ var a = /* @__PURE__ */ e({ GridField: () => o });
7
+ function o({ value: e, field: a, readonly: o, ...s }) {
8
+ let c = (a || s.schema)?.columns || [];
9
+ return !e || !Array.isArray(e) ? /* @__PURE__ */ r(n, {}) : o ? /* @__PURE__ */ r("div", {
10
+ className: t("text-sm", s.className),
11
+ children: /* @__PURE__ */ i("span", {
12
+ className: "text-foreground",
13
+ children: [e.length, " rows"]
14
+ })
15
+ }) : /* @__PURE__ */ i("div", {
16
+ className: t("border border-border rounded-lg overflow-hidden", s.className),
17
+ children: [/* @__PURE__ */ r("div", {
18
+ className: "overflow-auto max-h-60",
19
+ children: /* @__PURE__ */ i("table", {
20
+ className: "w-full text-sm",
21
+ children: [/* @__PURE__ */ r("thead", {
22
+ className: "bg-muted border-b border-border",
23
+ children: /* @__PURE__ */ r("tr", { children: c.map((e, t) => /* @__PURE__ */ r("th", {
24
+ className: "px-3 py-2 text-left text-xs font-medium text-muted-foreground",
25
+ children: e.label || e.name
26
+ }, t)) })
27
+ }), /* @__PURE__ */ r("tbody", {
28
+ className: "divide-y divide-border",
29
+ children: e.slice(0, 5).map((e, t) => /* @__PURE__ */ r("tr", {
30
+ className: "hover:bg-muted/50 transition-colors",
31
+ children: c.map((t, i) => /* @__PURE__ */ r("td", {
32
+ className: "px-3 py-2 text-foreground",
33
+ children: e[t.name] == null ? /* @__PURE__ */ r(n, {}) : String(e[t.name])
34
+ }, i))
35
+ }, t))
36
+ })]
37
+ })
38
+ }), e.length > 5 && /* @__PURE__ */ i("div", {
39
+ className: "bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border",
40
+ children: [
41
+ "Showing 5 of ",
42
+ e.length,
43
+ " rows"
44
+ ]
45
+ })]
46
+ });
47
+ }
48
+ //#endregion
49
+ export { a as t };
@@ -0,0 +1,73 @@
1
+ import { n as e } from "./rolldown-runtime-DnwLefa7.js";
2
+ import { Et as t, X as n, q as r, t as i } from "./src-DyUKLvMN.js";
3
+ import { useRef as a } from "react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ //#region ../fields/src/widgets/ImageField.tsx
6
+ var c = /* @__PURE__ */ e({ ImageField: () => l });
7
+ function l({ value: e, onChange: c, field: l, readonly: u, ...d }) {
8
+ let f = a(null), p = l || d.schema, m = p?.multiple || !1, h = p?.accept ? p.accept.join(",") : "image/*";
9
+ if (u) return e ? /* @__PURE__ */ o("div", {
10
+ className: "flex flex-wrap gap-2",
11
+ children: (Array.isArray(e) ? e : [e]).map((e, t) => /* @__PURE__ */ o("img", {
12
+ src: e.url || "",
13
+ alt: e.name || `Image ${t + 1}`,
14
+ className: "size-20 rounded-md object-cover border border-gray-200"
15
+ }, t))
16
+ }) : /* @__PURE__ */ o(i, {});
17
+ let g = e ? Array.isArray(e) ? e : [e] : [], _ = (e) => {
18
+ let t = Array.from(e.target.files || []);
19
+ if (t.length === 0) return;
20
+ let n = t.map((e) => ({
21
+ name: e.name,
22
+ original_name: e.name,
23
+ size: e.size,
24
+ mime_type: e.type,
25
+ url: URL.createObjectURL(e)
26
+ }));
27
+ c(m ? [...g, ...n] : n[0]);
28
+ }, v = (e) => {
29
+ if (m) {
30
+ let t = g.filter((t, n) => n !== e);
31
+ c(t.length > 0 ? t : null);
32
+ } else c(null);
33
+ };
34
+ return /* @__PURE__ */ s("div", {
35
+ className: d.className,
36
+ children: [/* @__PURE__ */ o("input", {
37
+ ref: f,
38
+ type: "file",
39
+ multiple: m,
40
+ accept: h,
41
+ onChange: _,
42
+ className: "hidden"
43
+ }), /* @__PURE__ */ s("div", {
44
+ className: "space-y-2",
45
+ children: [g.length > 0 && /* @__PURE__ */ o("div", {
46
+ className: "grid grid-cols-4 gap-2",
47
+ children: g.map((e, t) => /* @__PURE__ */ s("div", {
48
+ className: "relative group",
49
+ children: [/* @__PURE__ */ o("img", {
50
+ src: e.url || "",
51
+ alt: e.name || `Image ${t + 1}`,
52
+ className: "size-20 rounded-md object-cover border border-gray-200"
53
+ }), /* @__PURE__ */ o(r, {
54
+ type: "button",
55
+ variant: "destructive",
56
+ size: "sm",
57
+ onClick: () => v(t),
58
+ className: "absolute top-1 right-1 h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity",
59
+ children: /* @__PURE__ */ o(n, { className: "size-3" })
60
+ })]
61
+ }, t))
62
+ }), /* @__PURE__ */ s(r, {
63
+ type: "button",
64
+ variant: "outline",
65
+ onClick: () => f.current?.click(),
66
+ className: "w-full",
67
+ children: [/* @__PURE__ */ o(t, { className: "size-4 mr-2" }), g.length > 0 ? "Add More Images" : "Upload Image"]
68
+ })]
69
+ })]
70
+ });
71
+ }
72
+ //#endregion
73
+ export { c as t };
@@ -0,0 +1,36 @@
1
+ import { n as e } from "./rolldown-runtime-DnwLefa7.js";
2
+ import { O as t, t as n } from "./src-DyUKLvMN.js";
3
+ import "react";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region ../fields/src/widgets/LocationField.tsx
6
+ var i = /* @__PURE__ */ e({ LocationField: () => a });
7
+ function a({ value: e, onChange: i, field: a, readonly: o, ...s }) {
8
+ let c = a || s.schema, l = e && typeof e == "object" ? `${e.latitude || 0}, ${e.longitude || 0}` : "";
9
+ return o ? /* @__PURE__ */ r("span", {
10
+ className: "text-sm",
11
+ children: l || /* @__PURE__ */ r(n, {})
12
+ }) : /* @__PURE__ */ r(t, {
13
+ type: "text",
14
+ value: l,
15
+ onChange: (e) => {
16
+ let t = e.target.value;
17
+ if (!t.trim()) {
18
+ i(null);
19
+ return;
20
+ }
21
+ let n = t.split(",").map((e) => e.trim());
22
+ if (n.length === 2) {
23
+ let e = parseFloat(n[0]), t = parseFloat(n[1]);
24
+ !isNaN(e) && !isNaN(t) && i({
25
+ latitude: e,
26
+ longitude: t
27
+ });
28
+ }
29
+ },
30
+ placeholder: c?.placeholder || "latitude, longitude",
31
+ disabled: o || s.disabled,
32
+ className: s.className
33
+ });
34
+ }
35
+ //#endregion
36
+ export { i as t };