@object-ui/fields 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.
- package/CHANGELOG.md +141 -0
- package/README.md +24 -0
- package/dist/LookupField-CiIjeL_i.cjs +1 -0
- package/dist/LookupField-De-GqsfT.js +903 -0
- package/dist/chunk-D-qHiVGv.cjs +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +704 -690
- package/dist/packages/fields/src/widgets/useFieldTranslation.d.ts +5 -0
- package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
- package/dist/useFieldTranslation-BYPwtuNZ.cjs +1 -0
- package/dist/useFieldTranslation-Bv3oUVgb.js +9 -0
- package/package.json +35 -9
- package/src/__tests__/cell-renderers.test.tsx +39 -18
- package/src/__tests__/datetime-cell.test.tsx +2 -2
- package/src/__tests__/datetime-timezone.test.tsx +9 -9
- package/src/__tests__/validation-feedback.test.tsx +8 -8
- package/src/datetime-widgets.test.tsx +1 -1
- package/src/index.tsx +54 -28
- package/src/record-picker.test.tsx +30 -23
- package/src/remaining-widgets.test.tsx +1 -1
- package/src/widgets/AddressField.tsx +4 -3
- package/src/widgets/AutoNumberField.tsx +5 -3
- package/src/widgets/CodeField.tsx +2 -2
- package/src/widgets/ColorField.tsx +2 -2
- package/src/widgets/CurrencyField.tsx +2 -2
- package/src/widgets/DateField.tsx +2 -2
- package/src/widgets/DateTimeField.tsx +2 -2
- package/src/widgets/EmailField.tsx +2 -2
- package/src/widgets/FileField.tsx +2 -2
- package/src/widgets/FormulaField.tsx +14 -12
- package/src/widgets/GeolocationField.tsx +4 -3
- package/src/widgets/GridField.tsx +3 -3
- package/src/widgets/ImageField.tsx +2 -2
- package/src/widgets/LocationField.tsx +2 -2
- package/src/widgets/LookupField.tsx +8 -8
- package/src/widgets/NumberField.tsx +2 -2
- package/src/widgets/ObjectField.tsx +2 -2
- package/src/widgets/PercentField.tsx +2 -2
- package/src/widgets/PhoneField.tsx +2 -2
- package/src/widgets/QRCodeField.tsx +2 -2
- package/src/widgets/RichTextField.tsx +2 -2
- package/src/widgets/SelectField.tsx +12 -8
- package/src/widgets/SummaryField.tsx +12 -10
- package/src/widgets/TextAreaField.tsx +2 -2
- package/src/widgets/TextField.tsx +2 -2
- package/src/widgets/TimeField.tsx +2 -2
- package/src/widgets/UrlField.tsx +2 -2
- package/src/widgets/UserField.tsx +2 -2
- package/src/widgets/VectorField.tsx +2 -1
- package/src/widgets/useFieldTranslation.ts +17 -0
- package/dist/AddressField-B6fPb2Fs.js +0 -3
- package/dist/AddressField-Ctsxkj35.cjs +0 -1
- package/dist/AutoNumberField-DXIYJfiB.js +0 -3
- package/dist/AutoNumberField-f76XU1bR.cjs +0 -1
- package/dist/AvatarField-BHpex3Wa.js +0 -3
- package/dist/AvatarField-CXOdYavl.cjs +0 -1
- package/dist/BooleanField-Bs0urhsx.js +0 -3
- package/dist/BooleanField-DeexI_O2.cjs +0 -1
- package/dist/CodeField-DDOMH8E8.cjs +0 -1
- package/dist/CodeField-tRACqngO.js +0 -3
- package/dist/ColorField-Bar6bOJw.js +0 -3
- package/dist/ColorField-CM9CxZ9h.cjs +0 -1
- package/dist/CurrencyField-CezTX_rA.cjs +0 -1
- package/dist/CurrencyField-D4VwXI9k.js +0 -3
- package/dist/DateField-DDUllj7w.cjs +0 -1
- package/dist/DateField-DjGiK6BH.js +0 -3
- package/dist/DateTimeField-DBh-dYdR.js +0 -3
- package/dist/DateTimeField-DDqgVN3b.cjs +0 -1
- package/dist/EmailField-B-3nY8Pr.cjs +0 -1
- package/dist/EmailField-Cp6yJlpH.js +0 -3
- package/dist/FileField-C1bcL7tu.cjs +0 -1
- package/dist/FileField-DUgt6ai3.js +0 -3
- package/dist/FormulaField-BLV1KgkQ.js +0 -3
- package/dist/FormulaField-CsbQIZ7S.cjs +0 -1
- package/dist/GeolocationField-BbIRH51u.js +0 -3
- package/dist/GeolocationField-UFu9VR-x.cjs +0 -1
- package/dist/GridField-2m74haE0.cjs +0 -1
- package/dist/GridField-O3Jd1NuJ.js +0 -3
- package/dist/ImageField-Cna7g6KL.cjs +0 -1
- package/dist/ImageField-rc1Nzcvb.js +0 -3
- package/dist/LocationField-DpRe9QlH.cjs +0 -1
- package/dist/LocationField-QZPPYo0J.js +0 -3
- package/dist/LookupField-BX4sK8NG.js +0 -904
- package/dist/LookupField-C9rPrHi_.cjs +0 -1
- package/dist/MasterDetailField-BXncIT1s.js +0 -3
- package/dist/MasterDetailField-TNP2825Z.cjs +0 -1
- package/dist/NumberField-DCHTzmDG.js +0 -3
- package/dist/NumberField-SqRwbcY8.cjs +0 -1
- package/dist/ObjectField-BEUHpn_X.js +0 -3
- package/dist/ObjectField-BWZwaFIG.cjs +0 -1
- package/dist/PasswordField-BZ_OeQyw.js +0 -3
- package/dist/PasswordField-kLp-ZyPm.cjs +0 -1
- package/dist/PercentField-B2t2knlc.js +0 -3
- package/dist/PercentField-BzhD6tQm.cjs +0 -1
- package/dist/PhoneField-CirvuysP.cjs +0 -1
- package/dist/PhoneField-CkrCFmcO.js +0 -3
- package/dist/QRCodeField-C4OOLCbE.cjs +0 -1
- package/dist/QRCodeField-CQoGow8y.js +0 -3
- package/dist/RatingField-CZG8SgQ8.cjs +0 -1
- package/dist/RatingField-DecDJkou.js +0 -3
- package/dist/RichTextField-Bog2i4NN.cjs +0 -1
- package/dist/RichTextField-b-8QbNCJ.js +0 -3
- package/dist/SelectField-CAa6c0cB.cjs +0 -1
- package/dist/SelectField-DMy5IxRc.js +0 -3
- package/dist/SignatureField-BvTPE7Dn.js +0 -3
- package/dist/SignatureField-jsb-0AYp.cjs +0 -1
- package/dist/SliderField-B7WvKFv7.js +0 -3
- package/dist/SliderField-DRjEJSxK.cjs +0 -1
- package/dist/SummaryField-DA16Edq3.cjs +0 -1
- package/dist/SummaryField-DVSVfKmY.js +0 -3
- package/dist/TextAreaField--ut87UiB.js +0 -3
- package/dist/TextAreaField-Cxp3DFC6.cjs +0 -1
- package/dist/TextField-CkEDGbkQ.js +0 -3
- package/dist/TextField-aLAzBaLZ.cjs +0 -1
- package/dist/TimeField-D0lF0y_I.cjs +0 -1
- package/dist/TimeField-DA_S6lQV.js +0 -3
- package/dist/UrlField-D0ugmD3f.cjs +0 -1
- package/dist/UrlField-DCnXHR1A.js +0 -3
- package/dist/UserField-DGlorzyG.cjs +0 -1
- package/dist/UserField-V0GmvyGV.js +0 -3
- package/dist/VectorField-BSD85ntU.cjs +0 -1
- package/dist/VectorField-CVi5yrrc.js +0 -3
- package/dist/jsx-runtime-DHCF5ANT.cjs +0 -6
- package/dist/jsx-runtime-MxADXuRH.js +0 -189
- /package/dist/{fields → packages/fields}/src/__tests__/boolean-checkbox.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/cell-renderers.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/datetime-cell.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/datetime-timezone.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/extreme-inputs.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/form-variants.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/__tests__/validation-feedback.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/complex-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/datetime-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/fields-edge-cases.stories.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/fields.stories.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/index.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/new-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/record-picker-dialog.stories.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/record-picker.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/remaining-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/standard-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/text-rich-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/visual-widgets.test.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/AddressField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/AutoNumberField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/AvatarField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/BooleanField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/CodeField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/ColorField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/CurrencyField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/DateField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/DateTimeField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/EmailField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/FileField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/FormulaField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/GeolocationField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/GridField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/ImageField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/LocationField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/LookupField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/MasterDetailField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/NumberField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/ObjectField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/PasswordField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/PercentField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/PhoneField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/QRCodeField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/RatingField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/RecordPickerDialog.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/RichTextField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/SelectField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/SignatureField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/SliderField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/SummaryField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/TextAreaField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/TextField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/TimeField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/UrlField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/UserField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/VectorField.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/_cell-renderer-bridge.d.ts +0 -0
- /package/dist/{fields → packages/fields}/src/widgets/types.d.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import { t as e } from "./
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
|
|
2
|
+
import { t } from "./useFieldTranslation-Bv3oUVgb.js";
|
|
3
|
+
import { i as n, r, t as i } from "./LookupField-De-GqsfT.js";
|
|
4
|
+
import a, { useCallback as o, useEffect as s, useId as c, useRef as l, useState as u } from "react";
|
|
5
|
+
import { ComponentRegistry as d } from "@object-ui/core";
|
|
6
|
+
import { Avatar as f, AvatarFallback as p, AvatarImage as m, Badge as h, Button as g, Checkbox as _, EmptyValue as v, Input as y, Label as b, Select as ee, SelectContent as te, SelectItem as ne, SelectTrigger as re, SelectValue as ie, Slider as x, Switch as ae, Textarea as S, cn as C } from "@object-ui/components";
|
|
7
|
+
import { Check as oe, Copy as se, Crosshair as ce, Eraser as le, ExternalLink as ue, Eye as de, EyeOff as fe, File as pe, Image as me, ImageIcon as he, MapPin as ge, Phone as _e, Plus as ve, QrCode as ye, Star as be, Upload as xe, X as w } from "lucide-react";
|
|
8
|
+
import { Fragment as Se, jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
7
9
|
//#region src/widgets/TextField.tsx
|
|
8
|
-
var
|
|
9
|
-
function
|
|
10
|
+
var Ce = /* @__PURE__ */ e({ TextField: () => D });
|
|
11
|
+
function D({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
10
12
|
let a = n || i.schema;
|
|
11
|
-
if (r) return /* @__PURE__ */ (
|
|
13
|
+
if (r) return /* @__PURE__ */ T("span", {
|
|
12
14
|
className: "text-sm",
|
|
13
|
-
children: e ||
|
|
15
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
14
16
|
});
|
|
15
17
|
let o = a?.rows, { inputType: s, ...c } = i;
|
|
16
|
-
return o && o > 1 ? /* @__PURE__ */ (
|
|
18
|
+
return o && o > 1 ? /* @__PURE__ */ T(S, {
|
|
17
19
|
...c,
|
|
18
20
|
value: e || "",
|
|
19
21
|
onChange: (e) => t(e.target.value),
|
|
20
22
|
placeholder: a?.placeholder,
|
|
21
23
|
disabled: r || c.disabled
|
|
22
|
-
}) : /* @__PURE__ */ (
|
|
24
|
+
}) : /* @__PURE__ */ T(y, {
|
|
23
25
|
...c,
|
|
24
26
|
type: a?.type === "password" ? "password" : "text",
|
|
25
27
|
value: e || "",
|
|
@@ -30,13 +32,14 @@ function j({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
30
32
|
}
|
|
31
33
|
//#endregion
|
|
32
34
|
//#region src/widgets/NumberField.tsx
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
var we = /* @__PURE__ */ e({ NumberField: () => O });
|
|
36
|
+
function O({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
37
|
+
if (r) return e == null ? /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ T("span", {
|
|
35
38
|
className: "text-sm",
|
|
36
|
-
children: e
|
|
39
|
+
children: e
|
|
37
40
|
});
|
|
38
41
|
let a = n || i.schema, o = a?.precision, { inputType: s, ...c } = i;
|
|
39
|
-
return /* @__PURE__ */ (
|
|
42
|
+
return /* @__PURE__ */ T(y, {
|
|
40
43
|
...c,
|
|
41
44
|
type: "number",
|
|
42
45
|
value: e ?? "",
|
|
@@ -51,34 +54,35 @@ function M({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
51
54
|
}
|
|
52
55
|
//#endregion
|
|
53
56
|
//#region src/widgets/BooleanField.tsx
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
var Te = /* @__PURE__ */ e({ BooleanField: () => k });
|
|
58
|
+
function k({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
59
|
+
let a = n || i.schema, o = a?.widget, s = c(), l = a?.name || s, u = a?.label || "Checkbox";
|
|
60
|
+
if (r) return /* @__PURE__ */ T("span", {
|
|
57
61
|
className: "text-sm",
|
|
58
62
|
children: e ? "Yes" : "No"
|
|
59
63
|
});
|
|
60
64
|
let { inputType: d, ...f } = i;
|
|
61
|
-
return o === "checkbox" ? /* @__PURE__ */ (
|
|
65
|
+
return o === "checkbox" ? /* @__PURE__ */ E("div", {
|
|
62
66
|
className: "flex items-center space-x-2",
|
|
63
|
-
children: [/* @__PURE__ */ (
|
|
67
|
+
children: [/* @__PURE__ */ T(_, {
|
|
64
68
|
...f,
|
|
65
69
|
id: l,
|
|
66
70
|
checked: !!e,
|
|
67
71
|
onCheckedChange: (e) => t(!!e),
|
|
68
72
|
disabled: r || f.disabled
|
|
69
|
-
}), /* @__PURE__ */ (
|
|
73
|
+
}), /* @__PURE__ */ T(b, {
|
|
70
74
|
htmlFor: l,
|
|
71
75
|
children: u
|
|
72
76
|
})]
|
|
73
|
-
}) : /* @__PURE__ */ (
|
|
77
|
+
}) : /* @__PURE__ */ E("div", {
|
|
74
78
|
className: "flex items-center space-x-2",
|
|
75
|
-
children: [/* @__PURE__ */ (
|
|
79
|
+
children: [/* @__PURE__ */ T(ae, {
|
|
76
80
|
...f,
|
|
77
81
|
id: l,
|
|
78
82
|
checked: !!e,
|
|
79
83
|
onCheckedChange: t,
|
|
80
84
|
disabled: r || f.disabled
|
|
81
|
-
}), /* @__PURE__ */ (
|
|
85
|
+
}), /* @__PURE__ */ T(b, {
|
|
82
86
|
htmlFor: l,
|
|
83
87
|
children: u
|
|
84
88
|
})]
|
|
@@ -86,23 +90,28 @@ function N({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
86
90
|
}
|
|
87
91
|
//#endregion
|
|
88
92
|
//#region src/widgets/SelectField.tsx
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
var Ee = /* @__PURE__ */ e({ SelectField: () => A });
|
|
94
|
+
function A({ value: e, onChange: n, field: r, readonly: i, ...a }) {
|
|
95
|
+
let o = r || a.schema, s = o?.options || [], { t: c } = t();
|
|
96
|
+
if (i) {
|
|
97
|
+
let t = s.find((t) => t.value === e)?.label || e;
|
|
98
|
+
return t ? /* @__PURE__ */ T("span", {
|
|
99
|
+
className: "text-sm",
|
|
100
|
+
children: t
|
|
101
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
102
|
+
}
|
|
103
|
+
return /* @__PURE__ */ E(ee, {
|
|
104
|
+
...a,
|
|
96
105
|
value: e,
|
|
97
|
-
onValueChange:
|
|
98
|
-
disabled:
|
|
99
|
-
children: [/* @__PURE__ */ (
|
|
100
|
-
className:
|
|
101
|
-
id:
|
|
102
|
-
children: /* @__PURE__ */ (
|
|
103
|
-
}), /* @__PURE__ */ (
|
|
106
|
+
onValueChange: n,
|
|
107
|
+
disabled: i || a.disabled,
|
|
108
|
+
children: [/* @__PURE__ */ T(re, {
|
|
109
|
+
className: a.className,
|
|
110
|
+
id: a.id,
|
|
111
|
+
children: /* @__PURE__ */ T(ie, { placeholder: o?.placeholder || c("common.selectOption") })
|
|
112
|
+
}), /* @__PURE__ */ T(te, {
|
|
104
113
|
position: "popper",
|
|
105
|
-
children:
|
|
114
|
+
children: s.map((e) => /* @__PURE__ */ T(ne, {
|
|
106
115
|
value: e.value,
|
|
107
116
|
children: e.label
|
|
108
117
|
}, e.value))
|
|
@@ -111,13 +120,14 @@ function P({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
111
120
|
}
|
|
112
121
|
//#endregion
|
|
113
122
|
//#region src/widgets/DateField.tsx
|
|
114
|
-
|
|
115
|
-
|
|
123
|
+
var De = /* @__PURE__ */ e({ DateField: () => j });
|
|
124
|
+
function j({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
125
|
+
if (r) return e ? /* @__PURE__ */ T("span", {
|
|
116
126
|
className: "text-sm",
|
|
117
|
-
children:
|
|
118
|
-
});
|
|
127
|
+
children: new Date(e).toLocaleDateString()
|
|
128
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
119
129
|
let { inputType: a, ...o } = i;
|
|
120
|
-
return /* @__PURE__ */ (
|
|
130
|
+
return /* @__PURE__ */ T(y, {
|
|
121
131
|
...o,
|
|
122
132
|
type: "date",
|
|
123
133
|
value: e || "",
|
|
@@ -127,18 +137,16 @@ function F({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
127
137
|
}
|
|
128
138
|
//#endregion
|
|
129
139
|
//#region src/widgets/EmailField.tsx
|
|
130
|
-
|
|
140
|
+
var Oe = /* @__PURE__ */ e({ EmailField: () => M });
|
|
141
|
+
function M({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a }) {
|
|
131
142
|
let o = n || a.schema;
|
|
132
|
-
if (r) return e ? /* @__PURE__ */ (
|
|
143
|
+
if (r) return e ? /* @__PURE__ */ T("a", {
|
|
133
144
|
href: `mailto:${e}`,
|
|
134
145
|
className: "text-sm text-blue-600 hover:text-blue-800 hover:underline",
|
|
135
146
|
children: e
|
|
136
|
-
}) : /* @__PURE__ */ (
|
|
137
|
-
className: "text-sm",
|
|
138
|
-
children: "-"
|
|
139
|
-
});
|
|
147
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
140
148
|
let { inputType: s, ...c } = a;
|
|
141
|
-
return /* @__PURE__ */ (
|
|
149
|
+
return /* @__PURE__ */ T(y, {
|
|
142
150
|
...c,
|
|
143
151
|
type: "email",
|
|
144
152
|
value: e || "",
|
|
@@ -150,18 +158,16 @@ function I({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a
|
|
|
150
158
|
}
|
|
151
159
|
//#endregion
|
|
152
160
|
//#region src/widgets/PhoneField.tsx
|
|
153
|
-
|
|
161
|
+
var ke = /* @__PURE__ */ e({ PhoneField: () => N });
|
|
162
|
+
function N({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a }) {
|
|
154
163
|
let o = n || a.schema;
|
|
155
|
-
if (r) return e ? /* @__PURE__ */ (
|
|
164
|
+
if (r) return e ? /* @__PURE__ */ T("a", {
|
|
156
165
|
href: `tel:${e}`,
|
|
157
166
|
className: "text-sm text-blue-600 hover:text-blue-800 hover:underline",
|
|
158
167
|
children: e
|
|
159
|
-
}) : /* @__PURE__ */ (
|
|
160
|
-
className: "text-sm",
|
|
161
|
-
children: "-"
|
|
162
|
-
});
|
|
168
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
163
169
|
let { inputType: s, ...c } = a;
|
|
164
|
-
return /* @__PURE__ */ (
|
|
170
|
+
return /* @__PURE__ */ T(y, {
|
|
165
171
|
...c,
|
|
166
172
|
type: "tel",
|
|
167
173
|
value: e || "",
|
|
@@ -173,23 +179,21 @@ function L({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a
|
|
|
173
179
|
}
|
|
174
180
|
//#endregion
|
|
175
181
|
//#region src/widgets/UrlField.tsx
|
|
176
|
-
|
|
182
|
+
var Ae = /* @__PURE__ */ e({ UrlField: () => P });
|
|
183
|
+
function P({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a }) {
|
|
177
184
|
let o = n || a.schema;
|
|
178
|
-
if (r) return e ? e.startsWith("http://") || e.startsWith("https://") ? /* @__PURE__ */ (
|
|
185
|
+
if (r) return e ? e.startsWith("http://") || e.startsWith("https://") ? /* @__PURE__ */ T("a", {
|
|
179
186
|
href: e,
|
|
180
187
|
target: "_blank",
|
|
181
188
|
rel: "noopener noreferrer",
|
|
182
189
|
className: "text-sm text-blue-600 hover:text-blue-800 hover:underline",
|
|
183
190
|
children: e
|
|
184
|
-
}) : /* @__PURE__ */ (
|
|
191
|
+
}) : /* @__PURE__ */ T("span", {
|
|
185
192
|
className: "text-sm",
|
|
186
193
|
children: e
|
|
187
|
-
}) : /* @__PURE__ */ (
|
|
188
|
-
className: "text-sm",
|
|
189
|
-
children: "-"
|
|
190
|
-
});
|
|
194
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
191
195
|
let { inputType: s, ...c } = a;
|
|
192
|
-
return /* @__PURE__ */ (
|
|
196
|
+
return /* @__PURE__ */ T(y, {
|
|
193
197
|
...c,
|
|
194
198
|
type: "url",
|
|
195
199
|
value: e || "",
|
|
@@ -201,7 +205,8 @@ function R({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a
|
|
|
201
205
|
}
|
|
202
206
|
//#endregion
|
|
203
207
|
//#region src/widgets/CurrencyField.tsx
|
|
204
|
-
|
|
208
|
+
var je = /* @__PURE__ */ e({ CurrencyField: () => F });
|
|
209
|
+
function Me(e, t = "USD") {
|
|
205
210
|
try {
|
|
206
211
|
return new Intl.NumberFormat("en-US", {
|
|
207
212
|
style: "currency",
|
|
@@ -211,25 +216,22 @@ function he(e, t = "USD") {
|
|
|
211
216
|
return `${t} ${e.toFixed(2)}`;
|
|
212
217
|
}
|
|
213
218
|
}
|
|
214
|
-
function
|
|
219
|
+
function F({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, className: a, ...o }) {
|
|
215
220
|
let s = n || o.schema, c = s?.currency || "USD", l = s?.precision ?? 2;
|
|
216
|
-
if (r) return e == null ? /* @__PURE__ */ (
|
|
217
|
-
className: "text-sm",
|
|
218
|
-
children: "-"
|
|
219
|
-
}) : /* @__PURE__ */ (0, A.jsx)("span", {
|
|
221
|
+
if (r) return e == null ? /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ T("span", {
|
|
220
222
|
className: "text-sm font-medium tabular-nums",
|
|
221
|
-
children:
|
|
223
|
+
children: Me(Number(e), c)
|
|
222
224
|
});
|
|
223
225
|
let u = (e) => {
|
|
224
226
|
let n = parseFloat(e.target.value);
|
|
225
227
|
isNaN(n) || t(parseFloat(n.toFixed(l)));
|
|
226
228
|
};
|
|
227
|
-
return /* @__PURE__ */ (
|
|
229
|
+
return /* @__PURE__ */ E("div", {
|
|
228
230
|
className: "relative",
|
|
229
|
-
children: [/* @__PURE__ */ (
|
|
231
|
+
children: [/* @__PURE__ */ T("span", {
|
|
230
232
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500",
|
|
231
233
|
children: c === "USD" ? "$" : c
|
|
232
|
-
}), /* @__PURE__ */ (
|
|
234
|
+
}), /* @__PURE__ */ T(y, {
|
|
233
235
|
...o,
|
|
234
236
|
type: "number",
|
|
235
237
|
value: e ?? "",
|
|
@@ -247,15 +249,16 @@ function z({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, clas
|
|
|
247
249
|
}
|
|
248
250
|
//#endregion
|
|
249
251
|
//#region src/widgets/TextAreaField.tsx
|
|
250
|
-
|
|
251
|
-
|
|
252
|
+
var Ne = /* @__PURE__ */ e({ TextAreaField: () => I });
|
|
253
|
+
function I({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a }) {
|
|
254
|
+
if (r) return /* @__PURE__ */ T("div", {
|
|
252
255
|
className: "text-sm whitespace-pre-wrap",
|
|
253
|
-
children: e ||
|
|
256
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
254
257
|
});
|
|
255
258
|
let o = n || a.schema, s = o?.rows || 4, c = o?.max_length, { inputType: l, ...u } = a;
|
|
256
|
-
return /* @__PURE__ */ (
|
|
259
|
+
return /* @__PURE__ */ E("div", {
|
|
257
260
|
className: "relative",
|
|
258
|
-
children: [/* @__PURE__ */ (
|
|
261
|
+
children: [/* @__PURE__ */ T(S, {
|
|
259
262
|
...u,
|
|
260
263
|
value: e || "",
|
|
261
264
|
onChange: (e) => t(e.target.value),
|
|
@@ -264,7 +267,7 @@ function ge({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...
|
|
|
264
267
|
rows: s,
|
|
265
268
|
maxLength: c,
|
|
266
269
|
"aria-invalid": !!i
|
|
267
|
-
}), c && /* @__PURE__ */ (
|
|
270
|
+
}), c && /* @__PURE__ */ E("div", {
|
|
268
271
|
className: "absolute bottom-2 right-2 text-xs text-gray-400",
|
|
269
272
|
"aria-live": "polite",
|
|
270
273
|
"aria-label": `Character count: ${(e || "").length} of ${c}`,
|
|
@@ -278,21 +281,22 @@ function ge({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...
|
|
|
278
281
|
}
|
|
279
282
|
//#endregion
|
|
280
283
|
//#region src/widgets/RichTextField.tsx
|
|
281
|
-
|
|
282
|
-
|
|
284
|
+
var Pe = /* @__PURE__ */ e({ RichTextField: () => L });
|
|
285
|
+
function L({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a }) {
|
|
286
|
+
if (r) return /* @__PURE__ */ T("div", {
|
|
283
287
|
className: "text-sm prose prose-sm max-w-none",
|
|
284
|
-
children: e ||
|
|
288
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
285
289
|
});
|
|
286
290
|
let o = n || a.schema, s = o?.rows || 8;
|
|
287
|
-
return /* @__PURE__ */ (
|
|
291
|
+
return /* @__PURE__ */ E("div", {
|
|
288
292
|
className: "space-y-2",
|
|
289
|
-
children: [/* @__PURE__ */ (
|
|
293
|
+
children: [/* @__PURE__ */ E("div", {
|
|
290
294
|
className: "flex items-center justify-between text-xs text-gray-500",
|
|
291
|
-
children: [/* @__PURE__ */ (
|
|
295
|
+
children: [/* @__PURE__ */ E("span", { children: ["Format: ", o?.format || "markdown"] }), /* @__PURE__ */ T("span", {
|
|
292
296
|
className: "italic",
|
|
293
297
|
children: "Rich text editor (basic)"
|
|
294
298
|
})]
|
|
295
|
-
}), /* @__PURE__ */ (
|
|
299
|
+
}), /* @__PURE__ */ T(S, {
|
|
296
300
|
value: e || "",
|
|
297
301
|
onChange: (e) => t(e.target.value),
|
|
298
302
|
placeholder: o?.placeholder || "Enter text...",
|
|
@@ -305,14 +309,12 @@ function B({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, ...a
|
|
|
305
309
|
}
|
|
306
310
|
//#endregion
|
|
307
311
|
//#region src/widgets/DateTimeField.tsx
|
|
308
|
-
|
|
312
|
+
var Fe = /* @__PURE__ */ e({ DateTimeField: () => R });
|
|
313
|
+
function R({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
309
314
|
if (r) {
|
|
310
|
-
if (!e) return /* @__PURE__ */ (
|
|
311
|
-
className: "text-sm",
|
|
312
|
-
children: "-"
|
|
313
|
-
});
|
|
315
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
314
316
|
let t = new Date(e);
|
|
315
|
-
return /* @__PURE__ */ (
|
|
317
|
+
return /* @__PURE__ */ E("span", {
|
|
316
318
|
className: "text-sm",
|
|
317
319
|
children: [
|
|
318
320
|
t.toLocaleDateString(),
|
|
@@ -322,7 +324,7 @@ function _e({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
322
324
|
});
|
|
323
325
|
}
|
|
324
326
|
let { inputType: a, ...o } = i;
|
|
325
|
-
return /* @__PURE__ */ (
|
|
327
|
+
return /* @__PURE__ */ T(y, {
|
|
326
328
|
...o,
|
|
327
329
|
type: "datetime-local",
|
|
328
330
|
value: e || "",
|
|
@@ -332,13 +334,14 @@ function _e({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
332
334
|
}
|
|
333
335
|
//#endregion
|
|
334
336
|
//#region src/widgets/TimeField.tsx
|
|
335
|
-
|
|
336
|
-
|
|
337
|
+
var Ie = /* @__PURE__ */ e({ TimeField: () => z });
|
|
338
|
+
function z({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
339
|
+
if (r) return /* @__PURE__ */ T("span", {
|
|
337
340
|
className: "text-sm",
|
|
338
|
-
children: e ||
|
|
341
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
339
342
|
});
|
|
340
343
|
let { inputType: a, ...o } = i;
|
|
341
|
-
return /* @__PURE__ */ (
|
|
344
|
+
return /* @__PURE__ */ T(y, {
|
|
342
345
|
...o,
|
|
343
346
|
type: "time",
|
|
344
347
|
value: e || "",
|
|
@@ -348,12 +351,10 @@ function ve({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
348
351
|
}
|
|
349
352
|
//#endregion
|
|
350
353
|
//#region src/widgets/PercentField.tsx
|
|
351
|
-
|
|
354
|
+
var Le = /* @__PURE__ */ e({ PercentField: () => B });
|
|
355
|
+
function B({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, className: a, ...o }) {
|
|
352
356
|
let s = n || o.schema, c = s?.precision ?? 2;
|
|
353
|
-
if (r) return e == null ? /* @__PURE__ */ (
|
|
354
|
-
className: "text-sm",
|
|
355
|
-
children: "-"
|
|
356
|
-
}) : /* @__PURE__ */ (0, A.jsxs)("span", {
|
|
357
|
+
if (r) return e == null ? /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ E("span", {
|
|
357
358
|
className: "text-sm font-medium tabular-nums",
|
|
358
359
|
children: [(e * 100).toFixed(c), "%"]
|
|
359
360
|
});
|
|
@@ -373,11 +374,11 @@ function ye({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, cla
|
|
|
373
374
|
let n = e[0];
|
|
374
375
|
t(typeof n == "number" ? n / 100 : null);
|
|
375
376
|
}, p = 10 ** -c;
|
|
376
|
-
return /* @__PURE__ */ (
|
|
377
|
+
return /* @__PURE__ */ E("div", {
|
|
377
378
|
className: "space-y-2",
|
|
378
|
-
children: [/* @__PURE__ */ (
|
|
379
|
+
children: [/* @__PURE__ */ E("div", {
|
|
379
380
|
className: "relative",
|
|
380
|
-
children: [/* @__PURE__ */ (
|
|
381
|
+
children: [/* @__PURE__ */ T(y, {
|
|
381
382
|
...o,
|
|
382
383
|
type: "number",
|
|
383
384
|
value: l,
|
|
@@ -387,11 +388,11 @@ function ye({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, cla
|
|
|
387
388
|
className: `pr-8 ${a || ""}`,
|
|
388
389
|
step: (10 ** -c).toFixed(c),
|
|
389
390
|
"aria-invalid": !!i
|
|
390
|
-
}), /* @__PURE__ */ (
|
|
391
|
+
}), /* @__PURE__ */ T("span", {
|
|
391
392
|
className: "absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500",
|
|
392
393
|
children: "%"
|
|
393
394
|
})]
|
|
394
|
-
}), /* @__PURE__ */ (
|
|
395
|
+
}), /* @__PURE__ */ T(x, {
|
|
395
396
|
value: [u],
|
|
396
397
|
onValueChange: f,
|
|
397
398
|
min: 0,
|
|
@@ -406,16 +407,17 @@ function ye({ value: e, onChange: t, field: n, readonly: r, errorMessage: i, cla
|
|
|
406
407
|
}
|
|
407
408
|
//#endregion
|
|
408
409
|
//#region src/widgets/PasswordField.tsx
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
410
|
+
var Re = /* @__PURE__ */ e({ PasswordField: () => V });
|
|
411
|
+
function V({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }) {
|
|
412
|
+
let [o, s] = u(!1), c = n || a.schema;
|
|
413
|
+
if (r) return /* @__PURE__ */ T("span", {
|
|
412
414
|
className: "text-sm",
|
|
413
415
|
children: "••••••••"
|
|
414
416
|
});
|
|
415
|
-
let { inputType:
|
|
416
|
-
return /* @__PURE__ */ (
|
|
417
|
+
let { inputType: l, ...d } = a;
|
|
418
|
+
return /* @__PURE__ */ E("div", {
|
|
417
419
|
className: "relative",
|
|
418
|
-
children: [/* @__PURE__ */ (
|
|
420
|
+
children: [/* @__PURE__ */ T(y, {
|
|
419
421
|
...d,
|
|
420
422
|
type: o ? "text" : "password",
|
|
421
423
|
value: e || "",
|
|
@@ -423,21 +425,22 @@ function be({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }
|
|
|
423
425
|
placeholder: c?.placeholder,
|
|
424
426
|
disabled: r || d.disabled,
|
|
425
427
|
className: `pr-10 ${i || ""}`
|
|
426
|
-
}), /* @__PURE__ */ (
|
|
428
|
+
}), /* @__PURE__ */ T(g, {
|
|
427
429
|
type: "button",
|
|
428
430
|
variant: "ghost",
|
|
429
431
|
size: "sm",
|
|
430
432
|
className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
|
|
431
433
|
onClick: () => s(!o),
|
|
432
434
|
tabIndex: -1,
|
|
433
|
-
children: o ?
|
|
435
|
+
children: T(o ? fe : de, { className: "size-4 text-gray-500" })
|
|
434
436
|
})]
|
|
435
437
|
});
|
|
436
438
|
}
|
|
437
439
|
//#endregion
|
|
438
440
|
//#region src/widgets/FileField.tsx
|
|
439
|
-
|
|
440
|
-
|
|
441
|
+
var ze = /* @__PURE__ */ e({ FileField: () => Be });
|
|
442
|
+
function Be({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
443
|
+
let a = l(null), s = n || i.schema, c = s?.multiple || !1, d = s?.accept ? s.accept.join(",") : void 0, f = s?.maxSize, [p, m] = u(!1), [h, _] = u([]), y = e ? Array.isArray(e) ? e : [e] : [], b = o((e) => {
|
|
441
444
|
if (e.length === 0) return;
|
|
442
445
|
let n = [], r = e.filter((e) => {
|
|
443
446
|
if (f && e.size > f) {
|
|
@@ -454,62 +457,59 @@ function xe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
454
457
|
mime_type: e.type,
|
|
455
458
|
url: URL.createObjectURL(e)
|
|
456
459
|
}));
|
|
457
|
-
t(
|
|
460
|
+
t(c ? [...y, ...i] : i[0]);
|
|
458
461
|
}, [
|
|
459
|
-
|
|
460
|
-
|
|
462
|
+
y,
|
|
463
|
+
c,
|
|
461
464
|
t,
|
|
462
465
|
f
|
|
463
|
-
]), ee =
|
|
466
|
+
]), ee = o((e) => {
|
|
464
467
|
e.preventDefault(), e.stopPropagation(), m(!0);
|
|
465
|
-
}, []), te =
|
|
468
|
+
}, []), te = o((e) => {
|
|
466
469
|
e.preventDefault(), e.stopPropagation(), m(!1);
|
|
467
|
-
}, []),
|
|
470
|
+
}, []), ne = o((e) => {
|
|
468
471
|
e.preventDefault(), e.stopPropagation(), m(!1);
|
|
469
472
|
let t = Array.from(e.dataTransfer.files);
|
|
470
473
|
if (d) {
|
|
471
474
|
let e = d.split(",").map((e) => e.trim().toLowerCase());
|
|
472
|
-
|
|
475
|
+
b(t.filter((t) => {
|
|
473
476
|
let n = t.name.split("."), r = n.length > 1 ? "." + n.pop()?.toLowerCase() : "";
|
|
474
477
|
return e.some((e) => e === t.type || r && e === r || e.endsWith("/*") && t.type.startsWith(e.replace("/*", "/")));
|
|
475
478
|
}));
|
|
476
|
-
} else
|
|
477
|
-
}, [d,
|
|
478
|
-
if (r) return e ? /* @__PURE__ */ (
|
|
479
|
+
} else b(t);
|
|
480
|
+
}, [d, b]);
|
|
481
|
+
if (r) return e ? /* @__PURE__ */ T("div", {
|
|
479
482
|
className: "flex flex-wrap gap-2",
|
|
480
|
-
children: (Array.isArray(e) ? e : [e]).map((e, t) => /* @__PURE__ */ (
|
|
483
|
+
children: (Array.isArray(e) ? e : [e]).map((e, t) => /* @__PURE__ */ T("span", {
|
|
481
484
|
className: "text-sm truncate max-w-xs",
|
|
482
485
|
children: e.name || e.original_name || "File"
|
|
483
486
|
}, t))
|
|
484
|
-
}) : /* @__PURE__ */ (
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
})
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}, S = (e) => {
|
|
491
|
-
if (u) {
|
|
492
|
-
let n = v.filter((t, n) => n !== e);
|
|
487
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
488
|
+
let re = (e) => {
|
|
489
|
+
b(Array.from(e.target.files || []));
|
|
490
|
+
}, ie = (e) => {
|
|
491
|
+
if (c) {
|
|
492
|
+
let n = y.filter((t, n) => n !== e);
|
|
493
493
|
t(n.length > 0 ? n : null);
|
|
494
494
|
} else t(null);
|
|
495
|
-
},
|
|
496
|
-
return /* @__PURE__ */ (
|
|
495
|
+
}, x = (e) => (e.mime_type || "").startsWith("image/");
|
|
496
|
+
return /* @__PURE__ */ E("div", {
|
|
497
497
|
className: i.className,
|
|
498
|
-
children: [/* @__PURE__ */ (
|
|
499
|
-
ref:
|
|
498
|
+
children: [/* @__PURE__ */ T("input", {
|
|
499
|
+
ref: a,
|
|
500
500
|
type: "file",
|
|
501
|
-
multiple:
|
|
501
|
+
multiple: c,
|
|
502
502
|
accept: d,
|
|
503
|
-
onChange:
|
|
503
|
+
onChange: re,
|
|
504
504
|
className: "hidden"
|
|
505
|
-
}), /* @__PURE__ */ (
|
|
505
|
+
}), /* @__PURE__ */ E("div", {
|
|
506
506
|
className: "space-y-2",
|
|
507
507
|
children: [
|
|
508
|
-
/* @__PURE__ */ (
|
|
508
|
+
/* @__PURE__ */ E("div", {
|
|
509
509
|
onDragOver: ee,
|
|
510
510
|
onDragLeave: te,
|
|
511
|
-
onDrop:
|
|
512
|
-
onClick: () =>
|
|
511
|
+
onDrop: ne,
|
|
512
|
+
onClick: () => a.current?.click(),
|
|
513
513
|
className: `
|
|
514
514
|
flex flex-col items-center justify-center gap-2 p-6
|
|
515
515
|
border-2 border-dashed rounded-lg cursor-pointer
|
|
@@ -519,43 +519,43 @@ function xe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
519
519
|
role: "button",
|
|
520
520
|
tabIndex: 0,
|
|
521
521
|
onKeyDown: (e) => {
|
|
522
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(),
|
|
522
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), a.current?.click());
|
|
523
523
|
},
|
|
524
|
-
children: [/* @__PURE__ */ (
|
|
524
|
+
children: [/* @__PURE__ */ T(xe, { className: `size-8 ${p ? "text-primary" : "text-muted-foreground"}` }), /* @__PURE__ */ E("div", {
|
|
525
525
|
className: "text-center",
|
|
526
|
-
children: [/* @__PURE__ */ (
|
|
526
|
+
children: [/* @__PURE__ */ T("p", {
|
|
527
527
|
className: "text-sm font-medium",
|
|
528
528
|
children: p ? "Drop files here" : "Drag & drop files here"
|
|
529
|
-
}), /* @__PURE__ */ (
|
|
529
|
+
}), /* @__PURE__ */ T("p", {
|
|
530
530
|
className: "text-xs text-muted-foreground mt-1",
|
|
531
531
|
children: "or click to browse"
|
|
532
532
|
})]
|
|
533
533
|
})]
|
|
534
534
|
}),
|
|
535
|
-
|
|
535
|
+
h.length > 0 && /* @__PURE__ */ T("div", {
|
|
536
536
|
className: "space-y-0.5",
|
|
537
|
-
children:
|
|
537
|
+
children: h.map((e, t) => /* @__PURE__ */ T("p", {
|
|
538
538
|
className: "text-xs text-destructive",
|
|
539
539
|
children: e
|
|
540
540
|
}, t))
|
|
541
541
|
}),
|
|
542
|
-
|
|
542
|
+
y.length > 0 && /* @__PURE__ */ T("div", {
|
|
543
543
|
className: "space-y-1",
|
|
544
|
-
children:
|
|
544
|
+
children: y.map((e, t) => /* @__PURE__ */ E("div", {
|
|
545
545
|
className: "flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border",
|
|
546
|
-
children: [/* @__PURE__ */ (
|
|
546
|
+
children: [/* @__PURE__ */ E("div", {
|
|
547
547
|
className: "flex items-center gap-2 flex-1 min-w-0",
|
|
548
548
|
children: [
|
|
549
|
-
|
|
549
|
+
x(e) && e.url ? /* @__PURE__ */ T("img", {
|
|
550
550
|
src: e.url,
|
|
551
551
|
alt: e.name,
|
|
552
552
|
className: "size-8 object-cover rounded flex-shrink-0"
|
|
553
|
-
}) :
|
|
554
|
-
/* @__PURE__ */ (
|
|
553
|
+
}) : x(e) ? /* @__PURE__ */ T(he, { className: "size-4 text-muted-foreground flex-shrink-0" }) : /* @__PURE__ */ T(pe, { className: "size-4 text-muted-foreground flex-shrink-0" }),
|
|
554
|
+
/* @__PURE__ */ T("span", {
|
|
555
555
|
className: "text-sm truncate",
|
|
556
556
|
children: e.name || e.original_name || "File"
|
|
557
557
|
}),
|
|
558
|
-
e.size && /* @__PURE__ */ (
|
|
558
|
+
e.size && /* @__PURE__ */ E("span", {
|
|
559
559
|
className: "text-xs text-muted-foreground",
|
|
560
560
|
children: [
|
|
561
561
|
"(",
|
|
@@ -564,15 +564,15 @@ function xe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
564
564
|
]
|
|
565
565
|
})
|
|
566
566
|
]
|
|
567
|
-
}), /* @__PURE__ */ (
|
|
567
|
+
}), /* @__PURE__ */ T(g, {
|
|
568
568
|
type: "button",
|
|
569
569
|
variant: "ghost",
|
|
570
570
|
size: "sm",
|
|
571
571
|
onClick: (e) => {
|
|
572
|
-
e.stopPropagation(),
|
|
572
|
+
e.stopPropagation(), ie(t);
|
|
573
573
|
},
|
|
574
574
|
className: "h-6 w-6 p-0",
|
|
575
|
-
children: /* @__PURE__ */ (
|
|
575
|
+
children: /* @__PURE__ */ T(w, { className: "size-3" })
|
|
576
576
|
})]
|
|
577
577
|
}, t))
|
|
578
578
|
})
|
|
@@ -582,19 +582,17 @@ function xe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
582
582
|
}
|
|
583
583
|
//#endregion
|
|
584
584
|
//#region src/widgets/ImageField.tsx
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
585
|
+
var Ve = /* @__PURE__ */ e({ ImageField: () => He });
|
|
586
|
+
function He({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
587
|
+
let a = l(null), o = n || i.schema, s = o?.multiple || !1, c = o?.accept ? o.accept.join(",") : "image/*";
|
|
588
|
+
if (r) return e ? /* @__PURE__ */ T("div", {
|
|
588
589
|
className: "flex flex-wrap gap-2",
|
|
589
|
-
children: (Array.isArray(e) ? e : [e]).map((e, t) => /* @__PURE__ */ (
|
|
590
|
+
children: (Array.isArray(e) ? e : [e]).map((e, t) => /* @__PURE__ */ T("img", {
|
|
590
591
|
src: e.url || "",
|
|
591
592
|
alt: e.name || `Image ${t + 1}`,
|
|
592
593
|
className: "size-20 rounded-md object-cover border border-gray-200"
|
|
593
594
|
}, t))
|
|
594
|
-
}) : /* @__PURE__ */ (
|
|
595
|
-
className: "text-sm",
|
|
596
|
-
children: "-"
|
|
597
|
-
});
|
|
595
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
598
596
|
let u = e ? Array.isArray(e) ? e : [e] : [], d = (e) => {
|
|
599
597
|
let n = Array.from(e.target.files || []);
|
|
600
598
|
if (n.length === 0) return;
|
|
@@ -612,52 +610,53 @@ function Se({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
612
610
|
t(n.length > 0 ? n : null);
|
|
613
611
|
} else t(null);
|
|
614
612
|
};
|
|
615
|
-
return /* @__PURE__ */ (
|
|
613
|
+
return /* @__PURE__ */ E("div", {
|
|
616
614
|
className: i.className,
|
|
617
|
-
children: [/* @__PURE__ */ (
|
|
615
|
+
children: [/* @__PURE__ */ T("input", {
|
|
618
616
|
ref: a,
|
|
619
617
|
type: "file",
|
|
620
618
|
multiple: s,
|
|
621
|
-
accept:
|
|
619
|
+
accept: c,
|
|
622
620
|
onChange: d,
|
|
623
621
|
className: "hidden"
|
|
624
|
-
}), /* @__PURE__ */ (
|
|
622
|
+
}), /* @__PURE__ */ E("div", {
|
|
625
623
|
className: "space-y-2",
|
|
626
|
-
children: [u.length > 0 && /* @__PURE__ */ (
|
|
624
|
+
children: [u.length > 0 && /* @__PURE__ */ T("div", {
|
|
627
625
|
className: "grid grid-cols-4 gap-2",
|
|
628
|
-
children: u.map((e, t) => /* @__PURE__ */ (
|
|
626
|
+
children: u.map((e, t) => /* @__PURE__ */ E("div", {
|
|
629
627
|
className: "relative group",
|
|
630
|
-
children: [/* @__PURE__ */ (
|
|
628
|
+
children: [/* @__PURE__ */ T("img", {
|
|
631
629
|
src: e.url || "",
|
|
632
630
|
alt: e.name || `Image ${t + 1}`,
|
|
633
631
|
className: "size-20 rounded-md object-cover border border-gray-200"
|
|
634
|
-
}), /* @__PURE__ */ (
|
|
632
|
+
}), /* @__PURE__ */ T(g, {
|
|
635
633
|
type: "button",
|
|
636
634
|
variant: "destructive",
|
|
637
635
|
size: "sm",
|
|
638
636
|
onClick: () => f(t),
|
|
639
637
|
className: "absolute top-1 right-1 h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity",
|
|
640
|
-
children: /* @__PURE__ */ (
|
|
638
|
+
children: /* @__PURE__ */ T(w, { className: "size-3" })
|
|
641
639
|
})]
|
|
642
640
|
}, t))
|
|
643
|
-
}), /* @__PURE__ */ (
|
|
641
|
+
}), /* @__PURE__ */ E(g, {
|
|
644
642
|
type: "button",
|
|
645
643
|
variant: "outline",
|
|
646
644
|
onClick: () => a.current?.click(),
|
|
647
645
|
className: "w-full",
|
|
648
|
-
children: [/* @__PURE__ */ (
|
|
646
|
+
children: [/* @__PURE__ */ T(me, { className: "size-4 mr-2" }), u.length > 0 ? "Add More Images" : "Upload Image"]
|
|
649
647
|
})]
|
|
650
648
|
})]
|
|
651
649
|
});
|
|
652
650
|
}
|
|
653
651
|
//#endregion
|
|
654
652
|
//#region src/widgets/LocationField.tsx
|
|
655
|
-
|
|
653
|
+
var Ue = /* @__PURE__ */ e({ LocationField: () => We });
|
|
654
|
+
function We({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
656
655
|
let a = n || i.schema, o = e && typeof e == "object" ? `${e.latitude || 0}, ${e.longitude || 0}` : "";
|
|
657
|
-
return r ? /* @__PURE__ */ (
|
|
656
|
+
return r ? /* @__PURE__ */ T("span", {
|
|
658
657
|
className: "text-sm",
|
|
659
|
-
children: o ||
|
|
660
|
-
}) : /* @__PURE__ */ (
|
|
658
|
+
children: o || /* @__PURE__ */ T(v, {})
|
|
659
|
+
}) : /* @__PURE__ */ T(y, {
|
|
661
660
|
type: "text",
|
|
662
661
|
value: o,
|
|
663
662
|
onChange: (e) => {
|
|
@@ -682,61 +681,65 @@ function Ce({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
682
681
|
}
|
|
683
682
|
//#endregion
|
|
684
683
|
//#region src/widgets/FormulaField.tsx
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
684
|
+
var Ge = /* @__PURE__ */ e({ FormulaField: () => H });
|
|
685
|
+
function H({ value: e, field: t, ...n }) {
|
|
686
|
+
let r = (t || n.schema)?.return_type || "text";
|
|
687
|
+
if (e == null) return /* @__PURE__ */ T(v, { className: n.className });
|
|
688
|
+
let i;
|
|
689
|
+
return i = r === "number" || r === "currency" ? typeof e == "number" ? e.toFixed(2) : String(e) : r === "boolean" ? e ? "Yes" : "No" : r === "date" ? new Date(e).toLocaleDateString() : String(e), /* @__PURE__ */ T("span", {
|
|
688
690
|
className: `text-sm font-mono text-gray-700 ${n.className || ""}`,
|
|
689
691
|
children: i
|
|
690
692
|
});
|
|
691
693
|
}
|
|
692
694
|
//#endregion
|
|
693
695
|
//#region src/widgets/SummaryField.tsx
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
696
|
+
var Ke = /* @__PURE__ */ e({ SummaryField: () => qe });
|
|
697
|
+
function qe({ value: e, field: t, ...n }) {
|
|
698
|
+
let r = (t || n.schema)?.summary_type || "count";
|
|
699
|
+
if (e == null) return /* @__PURE__ */ T(v, { className: n.className });
|
|
700
|
+
let i;
|
|
701
|
+
return i = r === "count" ? String(e) : [
|
|
697
702
|
"sum",
|
|
698
703
|
"avg",
|
|
699
704
|
"min",
|
|
700
705
|
"max"
|
|
701
|
-
].includes(r) && typeof e == "number" ? e.toFixed(2) : String(e)
|
|
706
|
+
].includes(r) && typeof e == "number" ? e.toFixed(2) : String(e), /* @__PURE__ */ T("span", {
|
|
702
707
|
className: `text-sm font-medium tabular-nums text-gray-700 ${n.className || ""}`,
|
|
703
708
|
children: i
|
|
704
709
|
});
|
|
705
710
|
}
|
|
706
711
|
//#endregion
|
|
707
712
|
//#region src/widgets/AutoNumberField.tsx
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
return /* @__PURE__ */ (
|
|
713
|
+
var Je = /* @__PURE__ */ e({ AutoNumberField: () => Ye });
|
|
714
|
+
function Ye({ value: e, field: t, ...n }) {
|
|
715
|
+
return e == null ? /* @__PURE__ */ T(v, { className: n.className }) : /* @__PURE__ */ T("span", {
|
|
711
716
|
className: `text-sm font-mono text-gray-700 ${n.className || ""}`,
|
|
712
|
-
children:
|
|
717
|
+
children: String(e)
|
|
713
718
|
});
|
|
714
719
|
}
|
|
715
720
|
//#endregion
|
|
716
721
|
//#region src/widgets/UserField.tsx
|
|
717
|
-
|
|
722
|
+
var Xe = /* @__PURE__ */ e({ UserField: () => U });
|
|
723
|
+
function U({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
718
724
|
let a = (n || i.schema)?.multiple || !1;
|
|
719
725
|
if (r) {
|
|
720
|
-
if (!e) return /* @__PURE__ */ (
|
|
721
|
-
className: "text-sm",
|
|
722
|
-
children: "-"
|
|
723
|
-
});
|
|
726
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
724
727
|
let t = Array.isArray(e) ? e : [e];
|
|
725
|
-
return /* @__PURE__ */ (
|
|
728
|
+
return /* @__PURE__ */ E("div", {
|
|
726
729
|
className: "flex -space-x-2",
|
|
727
730
|
children: [t.slice(0, 3).map((e, t) => {
|
|
728
731
|
let n = e.name || e.username || "User";
|
|
729
|
-
return /* @__PURE__ */ (
|
|
732
|
+
return /* @__PURE__ */ T(f, {
|
|
730
733
|
className: "size-8 border-2 border-white",
|
|
731
734
|
title: n,
|
|
732
|
-
children: /* @__PURE__ */ (
|
|
735
|
+
children: /* @__PURE__ */ T(p, {
|
|
733
736
|
className: "bg-blue-500 text-white text-xs",
|
|
734
737
|
children: n.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2)
|
|
735
738
|
})
|
|
736
739
|
}, t);
|
|
737
|
-
}), t.length > 3 && /* @__PURE__ */ (
|
|
740
|
+
}), t.length > 3 && /* @__PURE__ */ T(f, {
|
|
738
741
|
className: "size-8 border-2 border-white",
|
|
739
|
-
children: /* @__PURE__ */ (
|
|
742
|
+
children: /* @__PURE__ */ E(p, {
|
|
740
743
|
className: "bg-gray-200 text-gray-600 text-xs",
|
|
741
744
|
children: ["+", t.length - 3]
|
|
742
745
|
})
|
|
@@ -749,37 +752,37 @@ function V({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
749
752
|
t(n.length > 0 ? n : null);
|
|
750
753
|
} else t(null);
|
|
751
754
|
};
|
|
752
|
-
return /* @__PURE__ */ (
|
|
755
|
+
return /* @__PURE__ */ E("div", {
|
|
753
756
|
className: i.className,
|
|
754
|
-
children: [o.length > 0 && /* @__PURE__ */ (
|
|
757
|
+
children: [o.length > 0 && /* @__PURE__ */ T("div", {
|
|
755
758
|
className: "flex flex-wrap gap-2 mb-2",
|
|
756
759
|
children: o.map((e, t) => {
|
|
757
760
|
let n = e.name || e.username || "User";
|
|
758
|
-
return /* @__PURE__ */ (
|
|
761
|
+
return /* @__PURE__ */ E(h, {
|
|
759
762
|
variant: "outline",
|
|
760
763
|
className: "gap-2 pr-1",
|
|
761
764
|
children: [
|
|
762
|
-
/* @__PURE__ */ (
|
|
765
|
+
/* @__PURE__ */ T(f, {
|
|
763
766
|
className: "size-5",
|
|
764
|
-
children: /* @__PURE__ */ (
|
|
767
|
+
children: /* @__PURE__ */ T(p, {
|
|
765
768
|
className: "bg-blue-500 text-white text-xs",
|
|
766
769
|
children: n.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2)
|
|
767
770
|
})
|
|
768
771
|
}),
|
|
769
|
-
/* @__PURE__ */ (
|
|
772
|
+
/* @__PURE__ */ T("span", {
|
|
770
773
|
className: "text-sm",
|
|
771
774
|
children: n
|
|
772
775
|
}),
|
|
773
|
-
/* @__PURE__ */ (
|
|
776
|
+
/* @__PURE__ */ T("button", {
|
|
774
777
|
type: "button",
|
|
775
778
|
onClick: () => s(t),
|
|
776
779
|
className: "ml-1 rounded-full hover:bg-gray-200 p-0.5",
|
|
777
|
-
children: /* @__PURE__ */ (
|
|
780
|
+
children: /* @__PURE__ */ T(w, { className: "size-3" })
|
|
778
781
|
})
|
|
779
782
|
]
|
|
780
783
|
}, t);
|
|
781
784
|
})
|
|
782
|
-
}), /* @__PURE__ */ (
|
|
785
|
+
}), /* @__PURE__ */ T("div", {
|
|
783
786
|
className: "text-sm text-gray-500 italic",
|
|
784
787
|
children: "User selection component requires integration with user management system"
|
|
785
788
|
})]
|
|
@@ -787,29 +790,27 @@ function V({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
787
790
|
}
|
|
788
791
|
//#endregion
|
|
789
792
|
//#region src/widgets/ObjectField.tsx
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
+
var Ze = /* @__PURE__ */ e({ ObjectField: () => Qe });
|
|
794
|
+
function Qe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
795
|
+
let a = n || i.schema, [o, c] = u(() => e == null ? "" : JSON.stringify(e, null, 2)), [l, d] = u(null);
|
|
796
|
+
return s(() => {
|
|
793
797
|
try {
|
|
794
798
|
if (e == null) {
|
|
795
799
|
c("");
|
|
796
800
|
return;
|
|
797
801
|
}
|
|
798
|
-
let t =
|
|
802
|
+
let t = o ? JSON.parse(o) : null;
|
|
799
803
|
JSON.stringify(t) !== JSON.stringify(e) && c(JSON.stringify(e, null, 2));
|
|
800
804
|
} catch {
|
|
801
805
|
c(JSON.stringify(e, null, 2));
|
|
802
806
|
}
|
|
803
|
-
}, [e,
|
|
804
|
-
className:
|
|
807
|
+
}, [e, o]), r ? e ? /* @__PURE__ */ T("pre", {
|
|
808
|
+
className: C("text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40", i.className),
|
|
805
809
|
children: JSON.stringify(e, null, 2)
|
|
806
|
-
}) : /* @__PURE__ */ (
|
|
807
|
-
className: "text-sm",
|
|
808
|
-
children: "-"
|
|
809
|
-
}) : /* @__PURE__ */ (0, A.jsxs)("div", {
|
|
810
|
+
}) : /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ E("div", {
|
|
810
811
|
className: "space-y-1",
|
|
811
|
-
children: [/* @__PURE__ */ (
|
|
812
|
-
value:
|
|
812
|
+
children: [/* @__PURE__ */ T(S, {
|
|
813
|
+
value: o,
|
|
813
814
|
onChange: (e) => {
|
|
814
815
|
let n = e.target.value;
|
|
815
816
|
if (c(n), d(null), !n.trim()) {
|
|
@@ -824,36 +825,34 @@ function De({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
824
825
|
},
|
|
825
826
|
placeholder: a?.placeholder || "{\n \"key\": \"value\"\n}",
|
|
826
827
|
disabled: r || i.disabled,
|
|
827
|
-
className:
|
|
828
|
+
className: C("font-mono text-xs", l ? "border-red-500 focus-visible:ring-red-500" : "", i.className),
|
|
828
829
|
rows: 6
|
|
829
|
-
}),
|
|
830
|
+
}), l && /* @__PURE__ */ T("p", {
|
|
830
831
|
className: "text-xs text-red-500",
|
|
831
|
-
children:
|
|
832
|
+
children: l
|
|
832
833
|
})]
|
|
833
834
|
});
|
|
834
835
|
}
|
|
835
836
|
//#endregion
|
|
836
837
|
//#region src/widgets/VectorField.tsx
|
|
837
|
-
|
|
838
|
+
var $e = /* @__PURE__ */ e({ VectorField: () => et });
|
|
839
|
+
function et({ value: e, field: t, ...n }) {
|
|
838
840
|
let r = (t || n.schema)?.dimensions || (Array.isArray(e) ? e.length : 0);
|
|
839
|
-
if (!e || !Array.isArray(e)) return /* @__PURE__ */ (
|
|
840
|
-
className: "text-sm text-gray-500",
|
|
841
|
-
children: "-"
|
|
842
|
-
});
|
|
841
|
+
if (!e || !Array.isArray(e)) return /* @__PURE__ */ T(v, {});
|
|
843
842
|
let i = e.slice(0, 3).map((e) => {
|
|
844
843
|
let t = Number(e);
|
|
845
844
|
return isNaN(t) ? "0" : t.toFixed(4);
|
|
846
845
|
}).join(", ");
|
|
847
|
-
return /* @__PURE__ */ (
|
|
846
|
+
return /* @__PURE__ */ E("div", {
|
|
848
847
|
className: `text-sm ${n.className || ""}`,
|
|
849
|
-
children: [/* @__PURE__ */ (
|
|
848
|
+
children: [/* @__PURE__ */ E("span", {
|
|
850
849
|
className: "font-mono text-gray-700",
|
|
851
850
|
children: [
|
|
852
851
|
"[",
|
|
853
852
|
i,
|
|
854
853
|
"...]"
|
|
855
854
|
]
|
|
856
|
-
}), /* @__PURE__ */ (
|
|
855
|
+
}), /* @__PURE__ */ E("span", {
|
|
857
856
|
className: "text-gray-500 ml-2",
|
|
858
857
|
children: [
|
|
859
858
|
"(",
|
|
@@ -865,41 +864,39 @@ function Oe({ value: e, field: t, ...n }) {
|
|
|
865
864
|
}
|
|
866
865
|
//#endregion
|
|
867
866
|
//#region src/widgets/GridField.tsx
|
|
868
|
-
|
|
867
|
+
var tt = /* @__PURE__ */ e({ GridField: () => nt });
|
|
868
|
+
function nt({ value: e, field: t, readonly: n, ...r }) {
|
|
869
869
|
let i = (t || r.schema)?.columns || [];
|
|
870
|
-
return !e || !Array.isArray(e) ? /* @__PURE__ */ (
|
|
871
|
-
className: "text-sm
|
|
872
|
-
children: "
|
|
873
|
-
}) : n ? /* @__PURE__ */ (0, A.jsx)("div", {
|
|
874
|
-
className: T("text-sm", r.className),
|
|
875
|
-
children: /* @__PURE__ */ (0, A.jsxs)("span", {
|
|
870
|
+
return !e || !Array.isArray(e) ? /* @__PURE__ */ T(v, {}) : n ? /* @__PURE__ */ T("div", {
|
|
871
|
+
className: C("text-sm", r.className),
|
|
872
|
+
children: /* @__PURE__ */ E("span", {
|
|
876
873
|
className: "text-foreground",
|
|
877
874
|
children: [e.length, " rows"]
|
|
878
875
|
})
|
|
879
|
-
}) : /* @__PURE__ */ (
|
|
880
|
-
className:
|
|
881
|
-
children: [/* @__PURE__ */ (
|
|
876
|
+
}) : /* @__PURE__ */ E("div", {
|
|
877
|
+
className: C("border border-border rounded-lg overflow-hidden", r.className),
|
|
878
|
+
children: [/* @__PURE__ */ T("div", {
|
|
882
879
|
className: "overflow-auto max-h-60",
|
|
883
|
-
children: /* @__PURE__ */ (
|
|
880
|
+
children: /* @__PURE__ */ E("table", {
|
|
884
881
|
className: "w-full text-sm",
|
|
885
|
-
children: [/* @__PURE__ */ (
|
|
882
|
+
children: [/* @__PURE__ */ T("thead", {
|
|
886
883
|
className: "bg-muted border-b border-border",
|
|
887
|
-
children: /* @__PURE__ */ (
|
|
884
|
+
children: /* @__PURE__ */ T("tr", { children: i.map((e, t) => /* @__PURE__ */ T("th", {
|
|
888
885
|
className: "px-3 py-2 text-left text-xs font-medium text-muted-foreground",
|
|
889
886
|
children: e.label || e.name
|
|
890
887
|
}, t)) })
|
|
891
|
-
}), /* @__PURE__ */ (
|
|
888
|
+
}), /* @__PURE__ */ T("tbody", {
|
|
892
889
|
className: "divide-y divide-border",
|
|
893
|
-
children: e.slice(0, 5).map((e, t) => /* @__PURE__ */ (
|
|
890
|
+
children: e.slice(0, 5).map((e, t) => /* @__PURE__ */ T("tr", {
|
|
894
891
|
className: "hover:bg-muted/50 transition-colors",
|
|
895
|
-
children: i.map((t, n) => /* @__PURE__ */ (
|
|
892
|
+
children: i.map((t, n) => /* @__PURE__ */ T("td", {
|
|
896
893
|
className: "px-3 py-2 text-foreground",
|
|
897
|
-
children: e[t.name] == null ?
|
|
894
|
+
children: e[t.name] == null ? /* @__PURE__ */ T(v, {}) : String(e[t.name])
|
|
898
895
|
}, n))
|
|
899
896
|
}, t))
|
|
900
897
|
})]
|
|
901
898
|
})
|
|
902
|
-
}), e.length > 5 && /* @__PURE__ */ (
|
|
899
|
+
}), e.length > 5 && /* @__PURE__ */ E("div", {
|
|
903
900
|
className: "bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border",
|
|
904
901
|
children: [
|
|
905
902
|
"Showing 5 of ",
|
|
@@ -911,26 +908,27 @@ function ke({ value: e, field: t, readonly: n, ...r }) {
|
|
|
911
908
|
}
|
|
912
909
|
//#endregion
|
|
913
910
|
//#region src/widgets/ColorField.tsx
|
|
914
|
-
|
|
911
|
+
var rt = /* @__PURE__ */ e({ ColorField: () => it });
|
|
912
|
+
function it({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
915
913
|
let a = n || i.schema;
|
|
916
|
-
return r ? /* @__PURE__ */ (
|
|
914
|
+
return r ? /* @__PURE__ */ E("div", {
|
|
917
915
|
className: "flex items-center gap-2",
|
|
918
|
-
children: [/* @__PURE__ */ (
|
|
916
|
+
children: [/* @__PURE__ */ T("div", {
|
|
919
917
|
className: "w-6 h-6 rounded border border-input",
|
|
920
918
|
style: { backgroundColor: e || "#000000" }
|
|
921
|
-
}), /* @__PURE__ */ (
|
|
919
|
+
}), /* @__PURE__ */ T("span", {
|
|
922
920
|
className: "text-sm",
|
|
923
|
-
children: e ||
|
|
921
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
924
922
|
})]
|
|
925
|
-
}) : /* @__PURE__ */ (
|
|
923
|
+
}) : /* @__PURE__ */ E("div", {
|
|
926
924
|
className: "flex items-center gap-2",
|
|
927
|
-
children: [/* @__PURE__ */ (
|
|
925
|
+
children: [/* @__PURE__ */ T("input", {
|
|
928
926
|
type: "color",
|
|
929
927
|
value: e || "#000000",
|
|
930
928
|
onChange: (e) => t(e.target.value),
|
|
931
929
|
disabled: r || i.disabled,
|
|
932
930
|
className: "w-10 h-10 rounded border border-input cursor-pointer"
|
|
933
|
-
}), /* @__PURE__ */ (
|
|
931
|
+
}), /* @__PURE__ */ T(y, {
|
|
934
932
|
type: "text",
|
|
935
933
|
value: e || "",
|
|
936
934
|
onChange: (e) => t(e.target.value),
|
|
@@ -943,20 +941,21 @@ function Ae({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
943
941
|
}
|
|
944
942
|
//#endregion
|
|
945
943
|
//#region src/widgets/SliderField.tsx
|
|
946
|
-
|
|
944
|
+
var at = /* @__PURE__ */ e({ SliderField: () => ot });
|
|
945
|
+
function ot({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
947
946
|
let a = n || i.schema, o = a?.min ?? 0, s = a?.max ?? 100, c = a?.step ?? 1;
|
|
948
|
-
return r ? /* @__PURE__ */ (
|
|
947
|
+
return r ? /* @__PURE__ */ E("div", {
|
|
949
948
|
className: "flex items-center gap-2",
|
|
950
|
-
children: [/* @__PURE__ */ (
|
|
949
|
+
children: [/* @__PURE__ */ T("span", {
|
|
951
950
|
className: "text-sm font-medium",
|
|
952
951
|
children: e ?? o
|
|
953
|
-
}), /* @__PURE__ */ (
|
|
952
|
+
}), /* @__PURE__ */ E("span", {
|
|
954
953
|
className: "text-xs text-muted-foreground",
|
|
955
954
|
children: ["/ ", s]
|
|
956
955
|
})]
|
|
957
|
-
}) : /* @__PURE__ */ (
|
|
956
|
+
}) : /* @__PURE__ */ E("div", {
|
|
958
957
|
className: "flex items-center gap-4",
|
|
959
|
-
children: [/* @__PURE__ */ (
|
|
958
|
+
children: [/* @__PURE__ */ T(x, {
|
|
960
959
|
value: [e ?? o],
|
|
961
960
|
onValueChange: (e) => t(e[0]),
|
|
962
961
|
min: o,
|
|
@@ -964,7 +963,7 @@ function je({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
964
963
|
step: c,
|
|
965
964
|
disabled: r || i.disabled,
|
|
966
965
|
className: i.className
|
|
967
|
-
}), /* @__PURE__ */ (
|
|
966
|
+
}), /* @__PURE__ */ T("span", {
|
|
968
967
|
className: "text-sm font-medium w-12 text-right",
|
|
969
968
|
children: e ?? o
|
|
970
969
|
})]
|
|
@@ -972,11 +971,12 @@ function je({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
972
971
|
}
|
|
973
972
|
//#endregion
|
|
974
973
|
//#region src/widgets/RatingField.tsx
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
974
|
+
var st = /* @__PURE__ */ e({ RatingField: () => ct });
|
|
975
|
+
function ct({ value: e, onChange: t, field: n, readonly: r, className: i, ...o }) {
|
|
976
|
+
let s = (n || o.schema)?.max ?? 5, c = e ?? 0, [l, u] = a.useState(null), d = l === null ? c : l;
|
|
977
|
+
return r ? /* @__PURE__ */ E("div", {
|
|
978
|
+
className: C("flex items-center gap-1", i),
|
|
979
|
+
children: [Array.from({ length: s }, (e, t) => /* @__PURE__ */ T(be, { className: `w-5 h-5 ${t < c ? "fill-yellow-400 text-yellow-400" : "text-muted-foreground"}` }, t)), /* @__PURE__ */ E("span", {
|
|
980
980
|
className: "ml-2 text-sm text-muted-foreground",
|
|
981
981
|
children: [
|
|
982
982
|
c,
|
|
@@ -984,17 +984,17 @@ function Me({ value: e, onChange: t, field: n, readonly: r, className: a, ...o }
|
|
|
984
984
|
s
|
|
985
985
|
]
|
|
986
986
|
})]
|
|
987
|
-
}) : /* @__PURE__ */ (
|
|
988
|
-
className:
|
|
989
|
-
children: [Array.from({ length: s }, (e, n) => /* @__PURE__ */ (
|
|
987
|
+
}) : /* @__PURE__ */ E("div", {
|
|
988
|
+
className: C("flex items-center gap-1", i),
|
|
989
|
+
children: [Array.from({ length: s }, (e, n) => /* @__PURE__ */ T("button", {
|
|
990
990
|
type: "button",
|
|
991
991
|
onClick: () => t(n + 1),
|
|
992
992
|
onMouseEnter: () => u(n + 1),
|
|
993
993
|
onMouseLeave: () => u(null),
|
|
994
994
|
className: "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded",
|
|
995
995
|
disabled: r || o.disabled,
|
|
996
|
-
children: /* @__PURE__ */ (
|
|
997
|
-
}, n)), /* @__PURE__ */ (
|
|
996
|
+
children: /* @__PURE__ */ T(be, { className: `w-5 h-5 transition-colors ${n < d ? "fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500" : "text-muted-foreground hover:text-yellow-400"}` })
|
|
997
|
+
}, n)), /* @__PURE__ */ E("span", {
|
|
998
998
|
className: "ml-2 text-sm text-muted-foreground",
|
|
999
999
|
children: [
|
|
1000
1000
|
c,
|
|
@@ -1006,25 +1006,27 @@ function Me({ value: e, onChange: t, field: n, readonly: r, className: a, ...o }
|
|
|
1006
1006
|
}
|
|
1007
1007
|
//#endregion
|
|
1008
1008
|
//#region src/widgets/CodeField.tsx
|
|
1009
|
-
|
|
1009
|
+
var lt = /* @__PURE__ */ e({ CodeField: () => ut });
|
|
1010
|
+
function ut({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
1010
1011
|
let a = n || i.schema, o = a?.language ?? "javascript";
|
|
1011
|
-
return r ? /* @__PURE__ */ (
|
|
1012
|
-
className:
|
|
1013
|
-
children: /* @__PURE__ */ (
|
|
1014
|
-
}) : /* @__PURE__ */ (
|
|
1012
|
+
return r ? /* @__PURE__ */ T("pre", {
|
|
1013
|
+
className: C("text-sm bg-muted p-2 rounded overflow-x-auto border", i.className),
|
|
1014
|
+
children: /* @__PURE__ */ T("code", { children: e || /* @__PURE__ */ T(v, {}) })
|
|
1015
|
+
}) : /* @__PURE__ */ T(S, {
|
|
1015
1016
|
value: e || "",
|
|
1016
1017
|
onChange: (e) => t(e.target.value),
|
|
1017
1018
|
placeholder: a?.placeholder || `// Write ${o} code here...`,
|
|
1018
1019
|
disabled: r || i.disabled,
|
|
1019
|
-
className:
|
|
1020
|
+
className: C("font-mono text-sm", i.className),
|
|
1020
1021
|
rows: 12,
|
|
1021
1022
|
spellCheck: !1
|
|
1022
1023
|
});
|
|
1023
1024
|
}
|
|
1024
1025
|
//#endregion
|
|
1025
1026
|
//#region src/widgets/AvatarField.tsx
|
|
1026
|
-
|
|
1027
|
-
|
|
1027
|
+
var dt = /* @__PURE__ */ e({ AvatarField: () => ft });
|
|
1028
|
+
function ft({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
1029
|
+
let [o, s] = a.useState(!1), c = a.useRef(null), l = n || i.schema, u = (e) => {
|
|
1028
1030
|
let n = e.target.files?.[0];
|
|
1029
1031
|
if (!n) return;
|
|
1030
1032
|
if (!n.type.startsWith("image/")) {
|
|
@@ -1039,56 +1041,56 @@ function Pe({ value: e, onChange: t, field: n, readonly: r, ...a }) {
|
|
|
1039
1041
|
r.onloadend = () => {
|
|
1040
1042
|
t(r.result);
|
|
1041
1043
|
}, r.readAsDataURL(n);
|
|
1042
|
-
},
|
|
1044
|
+
}, d = () => {
|
|
1043
1045
|
t("");
|
|
1044
|
-
},
|
|
1045
|
-
return r ? /* @__PURE__ */ (
|
|
1046
|
+
}, h = () => (l?.defaultName || l?.label || "User").split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2);
|
|
1047
|
+
return r ? /* @__PURE__ */ E(f, {
|
|
1046
1048
|
className: "w-16 h-16",
|
|
1047
|
-
children: [e && /* @__PURE__ */ (
|
|
1049
|
+
children: [e && /* @__PURE__ */ T(m, {
|
|
1048
1050
|
src: e,
|
|
1049
1051
|
alt: l?.label
|
|
1050
|
-
}), /* @__PURE__ */ (
|
|
1051
|
-
}) : /* @__PURE__ */ (
|
|
1052
|
+
}), /* @__PURE__ */ T(p, { children: h() })]
|
|
1053
|
+
}) : /* @__PURE__ */ E("div", {
|
|
1052
1054
|
className: "flex items-center gap-4",
|
|
1053
|
-
children: [/* @__PURE__ */ (
|
|
1055
|
+
children: [/* @__PURE__ */ E("div", {
|
|
1054
1056
|
className: "relative",
|
|
1055
1057
|
onMouseEnter: () => s(!0),
|
|
1056
1058
|
onMouseLeave: () => s(!1),
|
|
1057
|
-
children: [/* @__PURE__ */ (
|
|
1059
|
+
children: [/* @__PURE__ */ E(f, {
|
|
1058
1060
|
className: "w-16 h-16",
|
|
1059
|
-
children: [e && /* @__PURE__ */ (
|
|
1061
|
+
children: [e && /* @__PURE__ */ T(m, {
|
|
1060
1062
|
src: e,
|
|
1061
1063
|
alt: l?.label
|
|
1062
|
-
}), /* @__PURE__ */ (
|
|
1063
|
-
}), !r && o && e && /* @__PURE__ */ (
|
|
1064
|
+
}), /* @__PURE__ */ T(p, { children: h() })]
|
|
1065
|
+
}), !r && o && e && /* @__PURE__ */ T("button", {
|
|
1064
1066
|
type: "button",
|
|
1065
|
-
onClick:
|
|
1067
|
+
onClick: d,
|
|
1066
1068
|
className: "absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90",
|
|
1067
|
-
children: /* @__PURE__ */ (
|
|
1069
|
+
children: /* @__PURE__ */ T(w, { className: "w-3 h-3" })
|
|
1068
1070
|
})]
|
|
1069
|
-
}), /* @__PURE__ */ (
|
|
1071
|
+
}), /* @__PURE__ */ E("div", {
|
|
1070
1072
|
className: "flex flex-col gap-2",
|
|
1071
1073
|
children: [
|
|
1072
|
-
/* @__PURE__ */ (
|
|
1074
|
+
/* @__PURE__ */ T("input", {
|
|
1073
1075
|
ref: c,
|
|
1074
1076
|
type: "file",
|
|
1075
1077
|
accept: "image/*",
|
|
1076
1078
|
onChange: u,
|
|
1077
1079
|
className: "hidden"
|
|
1078
1080
|
}),
|
|
1079
|
-
/* @__PURE__ */ (
|
|
1081
|
+
/* @__PURE__ */ E(g, {
|
|
1080
1082
|
type: "button",
|
|
1081
1083
|
variant: "outline",
|
|
1082
1084
|
size: "sm",
|
|
1083
1085
|
onClick: () => c.current?.click(),
|
|
1084
|
-
disabled: r ||
|
|
1086
|
+
disabled: r || i.disabled,
|
|
1085
1087
|
children: [
|
|
1086
|
-
/* @__PURE__ */ (
|
|
1088
|
+
/* @__PURE__ */ T(xe, { className: "w-4 h-4 mr-2" }),
|
|
1087
1089
|
e ? "Change" : "Upload",
|
|
1088
1090
|
" Avatar"
|
|
1089
1091
|
]
|
|
1090
1092
|
}),
|
|
1091
|
-
/* @__PURE__ */ (
|
|
1093
|
+
/* @__PURE__ */ T("p", {
|
|
1092
1094
|
className: "text-xs text-muted-foreground",
|
|
1093
1095
|
children: "PNG, JPG up to 5MB"
|
|
1094
1096
|
})
|
|
@@ -1098,29 +1100,34 @@ function Pe({ value: e, onChange: t, field: n, readonly: r, ...a }) {
|
|
|
1098
1100
|
}
|
|
1099
1101
|
//#endregion
|
|
1100
1102
|
//#region src/widgets/AddressField.tsx
|
|
1101
|
-
|
|
1103
|
+
var pt = /* @__PURE__ */ e({ AddressField: () => mt });
|
|
1104
|
+
function mt({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
1102
1105
|
let a = e || {}, o = (e, n) => {
|
|
1103
1106
|
t({
|
|
1104
1107
|
...a,
|
|
1105
1108
|
[e]: n
|
|
1106
1109
|
});
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1110
|
+
}, s = (e) => [
|
|
1111
|
+
e.street,
|
|
1112
|
+
e.city,
|
|
1113
|
+
[e.state, e.zipCode].filter(Boolean).join(" "),
|
|
1114
|
+
e.country
|
|
1115
|
+
].filter(Boolean).join(", ");
|
|
1116
|
+
if (r) {
|
|
1117
|
+
let e = s(a);
|
|
1118
|
+
return e ? /* @__PURE__ */ T("span", {
|
|
1119
|
+
className: "text-sm",
|
|
1120
|
+
children: e
|
|
1121
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
1122
|
+
}
|
|
1123
|
+
return /* @__PURE__ */ E("div", {
|
|
1117
1124
|
className: "space-y-3",
|
|
1118
1125
|
children: [
|
|
1119
|
-
/* @__PURE__ */ (
|
|
1126
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1120
1127
|
htmlFor: "street",
|
|
1121
1128
|
className: "text-xs",
|
|
1122
1129
|
children: "Street Address"
|
|
1123
|
-
}), /* @__PURE__ */ (
|
|
1130
|
+
}), /* @__PURE__ */ T(y, {
|
|
1124
1131
|
id: "street",
|
|
1125
1132
|
type: "text",
|
|
1126
1133
|
value: a.street || "",
|
|
@@ -1129,24 +1136,24 @@ function Fe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
1129
1136
|
disabled: r || i.disabled,
|
|
1130
1137
|
className: i.className
|
|
1131
1138
|
})] }),
|
|
1132
|
-
/* @__PURE__ */ (
|
|
1139
|
+
/* @__PURE__ */ E("div", {
|
|
1133
1140
|
className: "grid grid-cols-2 gap-3",
|
|
1134
|
-
children: [/* @__PURE__ */ (
|
|
1141
|
+
children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1135
1142
|
htmlFor: "city",
|
|
1136
1143
|
className: "text-xs",
|
|
1137
1144
|
children: "City"
|
|
1138
|
-
}), /* @__PURE__ */ (
|
|
1145
|
+
}), /* @__PURE__ */ T(y, {
|
|
1139
1146
|
id: "city",
|
|
1140
1147
|
type: "text",
|
|
1141
1148
|
value: a.city || "",
|
|
1142
1149
|
onChange: (e) => o("city", e.target.value),
|
|
1143
1150
|
placeholder: "San Francisco",
|
|
1144
1151
|
disabled: r || i.disabled
|
|
1145
|
-
})] }), /* @__PURE__ */ (
|
|
1152
|
+
})] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1146
1153
|
htmlFor: "state",
|
|
1147
1154
|
className: "text-xs",
|
|
1148
1155
|
children: "State / Province"
|
|
1149
|
-
}), /* @__PURE__ */ (
|
|
1156
|
+
}), /* @__PURE__ */ T(y, {
|
|
1150
1157
|
id: "state",
|
|
1151
1158
|
type: "text",
|
|
1152
1159
|
value: a.state || "",
|
|
@@ -1155,24 +1162,24 @@ function Fe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
1155
1162
|
disabled: r || i.disabled
|
|
1156
1163
|
})] })]
|
|
1157
1164
|
}),
|
|
1158
|
-
/* @__PURE__ */ (
|
|
1165
|
+
/* @__PURE__ */ E("div", {
|
|
1159
1166
|
className: "grid grid-cols-2 gap-3",
|
|
1160
|
-
children: [/* @__PURE__ */ (
|
|
1167
|
+
children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1161
1168
|
htmlFor: "zipCode",
|
|
1162
1169
|
className: "text-xs",
|
|
1163
1170
|
children: "ZIP / Postal Code"
|
|
1164
|
-
}), /* @__PURE__ */ (
|
|
1171
|
+
}), /* @__PURE__ */ T(y, {
|
|
1165
1172
|
id: "zipCode",
|
|
1166
1173
|
type: "text",
|
|
1167
1174
|
value: a.zipCode || "",
|
|
1168
1175
|
onChange: (e) => o("zipCode", e.target.value),
|
|
1169
1176
|
placeholder: "94102",
|
|
1170
1177
|
disabled: r || i.disabled
|
|
1171
|
-
})] }), /* @__PURE__ */ (
|
|
1178
|
+
})] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1172
1179
|
htmlFor: "country",
|
|
1173
1180
|
className: "text-xs",
|
|
1174
1181
|
children: "Country"
|
|
1175
|
-
}), /* @__PURE__ */ (
|
|
1182
|
+
}), /* @__PURE__ */ T(y, {
|
|
1176
1183
|
id: "country",
|
|
1177
1184
|
type: "text",
|
|
1178
1185
|
value: a.country || "",
|
|
@@ -1186,8 +1193,9 @@ function Fe({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
|
1186
1193
|
}
|
|
1187
1194
|
//#endregion
|
|
1188
1195
|
//#region src/widgets/GeolocationField.tsx
|
|
1189
|
-
|
|
1190
|
-
|
|
1196
|
+
var ht = /* @__PURE__ */ e({ GeolocationField: () => gt });
|
|
1197
|
+
function gt({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
1198
|
+
let [o, s] = a.useState(!1), c = e || {}, l = (e, n) => {
|
|
1191
1199
|
t({
|
|
1192
1200
|
...c,
|
|
1193
1201
|
[e]: n ? Number(n) : void 0
|
|
@@ -1210,78 +1218,82 @@ function Ie({ value: e, onChange: t, field: n, readonly: r, ...a }) {
|
|
|
1210
1218
|
timeout: 5e3,
|
|
1211
1219
|
maximumAge: 0
|
|
1212
1220
|
});
|
|
1213
|
-
}, d = (e) => !e.latitude || !e.longitude ? "
|
|
1221
|
+
}, d = (e) => !e.latitude || !e.longitude ? "" : `${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`, f = () => {
|
|
1214
1222
|
if (!c.latitude || !c.longitude) return;
|
|
1215
1223
|
let e = `https://www.google.com/maps?q=${c.latitude},${c.longitude}`;
|
|
1216
1224
|
window.open(e, "_blank");
|
|
1217
1225
|
};
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
className: "text-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1226
|
+
if (r) {
|
|
1227
|
+
let e = d(c);
|
|
1228
|
+
return /* @__PURE__ */ E("div", {
|
|
1229
|
+
className: "flex items-center gap-2",
|
|
1230
|
+
children: [
|
|
1231
|
+
/* @__PURE__ */ T(ge, { className: "w-4 h-4 text-muted-foreground" }),
|
|
1232
|
+
e ? /* @__PURE__ */ T("span", {
|
|
1233
|
+
className: "text-sm",
|
|
1234
|
+
children: e
|
|
1235
|
+
}) : /* @__PURE__ */ T(v, {}),
|
|
1236
|
+
c.latitude && c.longitude && /* @__PURE__ */ T(g, {
|
|
1237
|
+
type: "button",
|
|
1238
|
+
variant: "link",
|
|
1239
|
+
size: "sm",
|
|
1240
|
+
onClick: f,
|
|
1241
|
+
className: "p-0 h-auto",
|
|
1242
|
+
children: "View on map"
|
|
1243
|
+
})
|
|
1244
|
+
]
|
|
1245
|
+
});
|
|
1246
|
+
}
|
|
1247
|
+
return /* @__PURE__ */ E("div", {
|
|
1236
1248
|
className: "space-y-3",
|
|
1237
1249
|
children: [
|
|
1238
|
-
/* @__PURE__ */ (
|
|
1250
|
+
/* @__PURE__ */ E("div", {
|
|
1239
1251
|
className: "flex items-center gap-2",
|
|
1240
|
-
children: [/* @__PURE__ */ (
|
|
1252
|
+
children: [/* @__PURE__ */ E(g, {
|
|
1241
1253
|
type: "button",
|
|
1242
1254
|
variant: "outline",
|
|
1243
1255
|
size: "sm",
|
|
1244
1256
|
onClick: u,
|
|
1245
1257
|
disabled: r || o,
|
|
1246
|
-
children: [/* @__PURE__ */ (
|
|
1247
|
-
}), c.latitude && c.longitude && /* @__PURE__ */ (
|
|
1258
|
+
children: [/* @__PURE__ */ T(ce, { className: "w-4 h-4 mr-2" }), o ? "Getting location..." : "Use Current Location"]
|
|
1259
|
+
}), c.latitude && c.longitude && /* @__PURE__ */ E(g, {
|
|
1248
1260
|
type: "button",
|
|
1249
1261
|
variant: "link",
|
|
1250
1262
|
size: "sm",
|
|
1251
1263
|
onClick: f,
|
|
1252
|
-
children: [/* @__PURE__ */ (
|
|
1264
|
+
children: [/* @__PURE__ */ T(ge, { className: "w-4 h-4 mr-2" }), "View on map"]
|
|
1253
1265
|
})]
|
|
1254
1266
|
}),
|
|
1255
|
-
/* @__PURE__ */ (
|
|
1267
|
+
/* @__PURE__ */ E("div", {
|
|
1256
1268
|
className: "grid grid-cols-2 gap-3",
|
|
1257
|
-
children: [/* @__PURE__ */ (
|
|
1269
|
+
children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1258
1270
|
htmlFor: "latitude",
|
|
1259
1271
|
className: "text-xs",
|
|
1260
1272
|
children: "Latitude"
|
|
1261
|
-
}), /* @__PURE__ */ (
|
|
1273
|
+
}), /* @__PURE__ */ T(y, {
|
|
1262
1274
|
id: "latitude",
|
|
1263
1275
|
type: "number",
|
|
1264
1276
|
value: c.latitude ?? "",
|
|
1265
1277
|
onChange: (e) => l("latitude", e.target.value),
|
|
1266
1278
|
placeholder: "37.7749",
|
|
1267
|
-
disabled: r ||
|
|
1279
|
+
disabled: r || i.disabled,
|
|
1268
1280
|
step: "any",
|
|
1269
|
-
className:
|
|
1270
|
-
})] }), /* @__PURE__ */ (
|
|
1281
|
+
className: i.className
|
|
1282
|
+
})] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T(b, {
|
|
1271
1283
|
htmlFor: "longitude",
|
|
1272
1284
|
className: "text-xs",
|
|
1273
1285
|
children: "Longitude"
|
|
1274
|
-
}), /* @__PURE__ */ (
|
|
1286
|
+
}), /* @__PURE__ */ T(y, {
|
|
1275
1287
|
id: "longitude",
|
|
1276
1288
|
type: "number",
|
|
1277
1289
|
value: c.longitude ?? "",
|
|
1278
1290
|
onChange: (e) => l("longitude", e.target.value),
|
|
1279
1291
|
placeholder: "-122.4194",
|
|
1280
|
-
disabled: r ||
|
|
1292
|
+
disabled: r || i.disabled,
|
|
1281
1293
|
step: "any"
|
|
1282
1294
|
})] })]
|
|
1283
1295
|
}),
|
|
1284
|
-
c.accuracy && /* @__PURE__ */ (
|
|
1296
|
+
c.accuracy && /* @__PURE__ */ E("p", {
|
|
1285
1297
|
className: "text-xs text-muted-foreground",
|
|
1286
1298
|
children: [
|
|
1287
1299
|
"Accuracy: ±",
|
|
@@ -1294,9 +1306,10 @@ function Ie({ value: e, onChange: t, field: n, readonly: r, ...a }) {
|
|
|
1294
1306
|
}
|
|
1295
1307
|
//#endregion
|
|
1296
1308
|
//#region src/widgets/SignatureField.tsx
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
o(
|
|
1309
|
+
var _t = /* @__PURE__ */ e({ SignatureField: () => vt });
|
|
1310
|
+
function vt({ value: e, onChange: t, readonly: n }) {
|
|
1311
|
+
let r = l(null), [i, o] = a.useState(!1), [c, u] = a.useState(!e);
|
|
1312
|
+
s(() => {
|
|
1300
1313
|
if (e && r.current) {
|
|
1301
1314
|
let t = r.current.getContext("2d");
|
|
1302
1315
|
if (t) {
|
|
@@ -1309,43 +1322,43 @@ function Le({ value: e, onChange: t, readonly: n }) {
|
|
|
1309
1322
|
}, [e]);
|
|
1310
1323
|
let d = (e) => {
|
|
1311
1324
|
if (n) return;
|
|
1312
|
-
|
|
1325
|
+
o(!0), u(!1);
|
|
1313
1326
|
let t = r.current;
|
|
1314
1327
|
if (!t) return;
|
|
1315
1328
|
let i = t.getContext("2d");
|
|
1316
1329
|
if (!i) return;
|
|
1317
|
-
let a = t.getBoundingClientRect(),
|
|
1318
|
-
i.beginPath(), i.moveTo(
|
|
1330
|
+
let a = t.getBoundingClientRect(), s = "touches" in e ? e.touches[0].clientX - a.left : e.clientX - a.left, c = "touches" in e ? e.touches[0].clientY - a.top : e.clientY - a.top;
|
|
1331
|
+
i.beginPath(), i.moveTo(s, c);
|
|
1319
1332
|
}, f = (e) => {
|
|
1320
|
-
if (!
|
|
1333
|
+
if (!i || n) return;
|
|
1321
1334
|
let t = r.current;
|
|
1322
1335
|
if (!t) return;
|
|
1323
|
-
let
|
|
1324
|
-
if (!
|
|
1336
|
+
let a = t.getContext("2d");
|
|
1337
|
+
if (!a) return;
|
|
1325
1338
|
let o = t.getBoundingClientRect(), s = "touches" in e ? e.touches[0].clientX - o.left : e.clientX - o.left, c = "touches" in e ? e.touches[0].clientY - o.top : e.clientY - o.top;
|
|
1326
|
-
|
|
1339
|
+
a.lineTo(s, c), a.strokeStyle = "#000", a.lineWidth = 2, a.lineCap = "round", a.lineJoin = "round", a.stroke();
|
|
1327
1340
|
}, p = () => {
|
|
1328
|
-
if (!
|
|
1329
|
-
|
|
1341
|
+
if (!i) return;
|
|
1342
|
+
o(!1);
|
|
1330
1343
|
let e = r.current;
|
|
1331
1344
|
e && t(e.toDataURL("image/png"));
|
|
1332
1345
|
};
|
|
1333
|
-
return n && e ? /* @__PURE__ */ (
|
|
1346
|
+
return n && e ? /* @__PURE__ */ T("div", {
|
|
1334
1347
|
className: "border rounded p-2 bg-white",
|
|
1335
|
-
children: /* @__PURE__ */ (
|
|
1348
|
+
children: /* @__PURE__ */ T("img", {
|
|
1336
1349
|
src: e,
|
|
1337
1350
|
alt: "Signature",
|
|
1338
1351
|
loading: "lazy",
|
|
1339
1352
|
className: "max-w-full h-auto"
|
|
1340
1353
|
})
|
|
1341
|
-
}) : n && !e ? /* @__PURE__ */ (
|
|
1354
|
+
}) : n && !e ? /* @__PURE__ */ T("span", {
|
|
1342
1355
|
className: "text-sm text-muted-foreground",
|
|
1343
1356
|
children: "No signature"
|
|
1344
|
-
}) : /* @__PURE__ */ (
|
|
1357
|
+
}) : /* @__PURE__ */ E("div", {
|
|
1345
1358
|
className: "space-y-2",
|
|
1346
|
-
children: [/* @__PURE__ */ (
|
|
1359
|
+
children: [/* @__PURE__ */ T("div", {
|
|
1347
1360
|
className: "border rounded bg-white",
|
|
1348
|
-
children: /* @__PURE__ */ (
|
|
1361
|
+
children: /* @__PURE__ */ T("canvas", {
|
|
1349
1362
|
ref: r,
|
|
1350
1363
|
width: 400,
|
|
1351
1364
|
height: 200,
|
|
@@ -1358,12 +1371,12 @@ function Le({ value: e, onChange: t, readonly: n }) {
|
|
|
1358
1371
|
onTouchMove: f,
|
|
1359
1372
|
onTouchEnd: p
|
|
1360
1373
|
})
|
|
1361
|
-
}), /* @__PURE__ */ (
|
|
1374
|
+
}), /* @__PURE__ */ E("div", {
|
|
1362
1375
|
className: "flex justify-between items-center",
|
|
1363
|
-
children: [/* @__PURE__ */ (
|
|
1376
|
+
children: [/* @__PURE__ */ T("p", {
|
|
1364
1377
|
className: "text-xs text-muted-foreground",
|
|
1365
|
-
children:
|
|
1366
|
-
}), /* @__PURE__ */ (
|
|
1378
|
+
children: c ? "Sign above" : "Signature captured"
|
|
1379
|
+
}), /* @__PURE__ */ E(g, {
|
|
1367
1380
|
type: "button",
|
|
1368
1381
|
variant: "outline",
|
|
1369
1382
|
size: "sm",
|
|
@@ -1373,69 +1386,70 @@ function Le({ value: e, onChange: t, readonly: n }) {
|
|
|
1373
1386
|
let n = e.getContext("2d");
|
|
1374
1387
|
n && (n.clearRect(0, 0, e.width, e.height), u(!0), t(""));
|
|
1375
1388
|
},
|
|
1376
|
-
disabled: n ||
|
|
1377
|
-
children: [/* @__PURE__ */ (
|
|
1389
|
+
disabled: n || c,
|
|
1390
|
+
children: [/* @__PURE__ */ T(le, { className: "w-4 h-4 mr-2" }), "Clear"]
|
|
1378
1391
|
})]
|
|
1379
1392
|
})]
|
|
1380
1393
|
});
|
|
1381
1394
|
}
|
|
1382
1395
|
//#endregion
|
|
1383
1396
|
//#region src/widgets/QRCodeField.tsx
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1397
|
+
var yt = /* @__PURE__ */ e({ QRCodeField: () => bt });
|
|
1398
|
+
function bt({ value: e, onChange: t, field: n, readonly: r, ...i }) {
|
|
1399
|
+
let [o, s] = a.useState(!1), c = n || i.schema;
|
|
1400
|
+
return r ? /* @__PURE__ */ E("div", {
|
|
1387
1401
|
className: "flex items-center gap-3",
|
|
1388
|
-
children: [/* @__PURE__ */ (
|
|
1402
|
+
children: [/* @__PURE__ */ T("span", {
|
|
1389
1403
|
className: "text-sm flex-1 truncate",
|
|
1390
|
-
children: e ||
|
|
1391
|
-
}), e && /* @__PURE__ */ (
|
|
1404
|
+
children: e || /* @__PURE__ */ T(v, {})
|
|
1405
|
+
}), e && /* @__PURE__ */ E(g, {
|
|
1392
1406
|
type: "button",
|
|
1393
1407
|
variant: "outline",
|
|
1394
1408
|
size: "sm",
|
|
1395
1409
|
onClick: () => s(!o),
|
|
1396
1410
|
children: [
|
|
1397
|
-
/* @__PURE__ */ (
|
|
1411
|
+
/* @__PURE__ */ T(ye, { className: "w-4 h-4 mr-2" }),
|
|
1398
1412
|
o ? "Hide" : "Show",
|
|
1399
1413
|
" QR"
|
|
1400
1414
|
]
|
|
1401
1415
|
})]
|
|
1402
|
-
}) : /* @__PURE__ */ (
|
|
1416
|
+
}) : /* @__PURE__ */ E("div", {
|
|
1403
1417
|
className: "space-y-3",
|
|
1404
1418
|
children: [
|
|
1405
|
-
/* @__PURE__ */ (
|
|
1419
|
+
/* @__PURE__ */ E("div", {
|
|
1406
1420
|
className: "flex items-center gap-2",
|
|
1407
|
-
children: [/* @__PURE__ */ (
|
|
1421
|
+
children: [/* @__PURE__ */ T(y, {
|
|
1408
1422
|
type: "text",
|
|
1409
1423
|
value: e || "",
|
|
1410
1424
|
onChange: (e) => t(e.target.value),
|
|
1411
1425
|
placeholder: c?.placeholder || "Enter text for QR code",
|
|
1412
|
-
disabled: r ||
|
|
1413
|
-
className:
|
|
1414
|
-
}), e && /* @__PURE__ */ (
|
|
1426
|
+
disabled: r || i.disabled,
|
|
1427
|
+
className: i.className
|
|
1428
|
+
}), e && /* @__PURE__ */ E(Se, { children: [/* @__PURE__ */ T(g, {
|
|
1415
1429
|
type: "button",
|
|
1416
1430
|
variant: "outline",
|
|
1417
1431
|
size: "sm",
|
|
1418
1432
|
onClick: () => {
|
|
1419
1433
|
e && navigator.clipboard.writeText(e);
|
|
1420
1434
|
},
|
|
1421
|
-
children: /* @__PURE__ */ (
|
|
1422
|
-
}), /* @__PURE__ */ (
|
|
1435
|
+
children: /* @__PURE__ */ T(se, { className: "w-4 h-4" })
|
|
1436
|
+
}), /* @__PURE__ */ T(g, {
|
|
1423
1437
|
type: "button",
|
|
1424
1438
|
variant: "outline",
|
|
1425
1439
|
size: "sm",
|
|
1426
1440
|
onClick: () => s(!o),
|
|
1427
|
-
children: /* @__PURE__ */ (
|
|
1441
|
+
children: /* @__PURE__ */ T(ye, { className: "w-4 h-4" })
|
|
1428
1442
|
})] })]
|
|
1429
1443
|
}),
|
|
1430
|
-
o && e && /* @__PURE__ */ (
|
|
1444
|
+
o && e && /* @__PURE__ */ T("div", {
|
|
1431
1445
|
className: "border rounded p-4 bg-white flex justify-center",
|
|
1432
|
-
children: /* @__PURE__ */ (
|
|
1446
|
+
children: /* @__PURE__ */ T("img", {
|
|
1433
1447
|
src: ((e) => `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(e)}`)(e),
|
|
1434
1448
|
alt: "QR Code",
|
|
1435
1449
|
className: "w-48 h-48"
|
|
1436
1450
|
})
|
|
1437
1451
|
}),
|
|
1438
|
-
e && /* @__PURE__ */ (
|
|
1452
|
+
e && /* @__PURE__ */ E("p", {
|
|
1439
1453
|
className: "text-xs text-muted-foreground",
|
|
1440
1454
|
children: [
|
|
1441
1455
|
"QR code contains: ",
|
|
@@ -1448,7 +1462,8 @@ function Re({ value: e, onChange: t, field: n, readonly: r, ...a }) {
|
|
|
1448
1462
|
}
|
|
1449
1463
|
//#endregion
|
|
1450
1464
|
//#region src/widgets/MasterDetailField.tsx
|
|
1451
|
-
|
|
1465
|
+
var xt = /* @__PURE__ */ e({ MasterDetailField: () => St });
|
|
1466
|
+
function St({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }) {
|
|
1452
1467
|
let o = e || [], s = n || a.schema, c = () => {
|
|
1453
1468
|
let e = {
|
|
1454
1469
|
id: `new-${Date.now()}`,
|
|
@@ -1460,24 +1475,24 @@ function ze({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }
|
|
|
1460
1475
|
}, u = (e) => {
|
|
1461
1476
|
console.log("View detail:", e);
|
|
1462
1477
|
};
|
|
1463
|
-
return r ? /* @__PURE__ */ (
|
|
1464
|
-
className:
|
|
1465
|
-
children: [o.length === 0 ? /* @__PURE__ */ (
|
|
1478
|
+
return r ? /* @__PURE__ */ E("div", {
|
|
1479
|
+
className: C("space-y-2", i),
|
|
1480
|
+
children: [o.length === 0 ? /* @__PURE__ */ T("span", {
|
|
1466
1481
|
className: "text-sm text-muted-foreground",
|
|
1467
1482
|
children: "No related records"
|
|
1468
|
-
}) : o.map((e) => /* @__PURE__ */ (
|
|
1483
|
+
}) : o.map((e) => /* @__PURE__ */ E("div", {
|
|
1469
1484
|
className: "flex items-center justify-between p-2 border rounded hover:bg-muted/50",
|
|
1470
|
-
children: [/* @__PURE__ */ (
|
|
1485
|
+
children: [/* @__PURE__ */ T("span", {
|
|
1471
1486
|
className: "text-sm",
|
|
1472
1487
|
children: e.label
|
|
1473
|
-
}), /* @__PURE__ */ (
|
|
1488
|
+
}), /* @__PURE__ */ T(g, {
|
|
1474
1489
|
type: "button",
|
|
1475
1490
|
variant: "ghost",
|
|
1476
1491
|
size: "sm",
|
|
1477
1492
|
onClick: () => u(e),
|
|
1478
|
-
children: /* @__PURE__ */ (
|
|
1493
|
+
children: /* @__PURE__ */ T(ue, { className: "w-4 h-4" })
|
|
1479
1494
|
})]
|
|
1480
|
-
}, e.id)), /* @__PURE__ */ (
|
|
1495
|
+
}, e.id)), /* @__PURE__ */ E("p", {
|
|
1481
1496
|
className: "text-xs text-muted-foreground",
|
|
1482
1497
|
children: [
|
|
1483
1498
|
o.length,
|
|
@@ -1485,50 +1500,50 @@ function ze({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }
|
|
|
1485
1500
|
o.length === 1 ? "record" : "records"
|
|
1486
1501
|
]
|
|
1487
1502
|
})]
|
|
1488
|
-
}) : /* @__PURE__ */ (
|
|
1489
|
-
className:
|
|
1490
|
-
children: [/* @__PURE__ */ (
|
|
1503
|
+
}) : /* @__PURE__ */ E("div", {
|
|
1504
|
+
className: C("space-y-3", i),
|
|
1505
|
+
children: [/* @__PURE__ */ E("div", {
|
|
1491
1506
|
className: "space-y-2",
|
|
1492
|
-
children: [o.map((e) => /* @__PURE__ */ (
|
|
1507
|
+
children: [o.map((e) => /* @__PURE__ */ E("div", {
|
|
1493
1508
|
className: "flex items-center justify-between gap-2 p-2 border rounded hover:bg-muted/50",
|
|
1494
|
-
children: [/* @__PURE__ */ (
|
|
1509
|
+
children: [/* @__PURE__ */ E("div", {
|
|
1495
1510
|
className: "flex items-center gap-2 flex-1",
|
|
1496
|
-
children: [/* @__PURE__ */ (
|
|
1511
|
+
children: [/* @__PURE__ */ T(h, {
|
|
1497
1512
|
variant: "outline",
|
|
1498
1513
|
children: e.id
|
|
1499
|
-
}), /* @__PURE__ */ (
|
|
1514
|
+
}), /* @__PURE__ */ T("span", {
|
|
1500
1515
|
className: "text-sm flex-1",
|
|
1501
1516
|
children: e.label
|
|
1502
1517
|
})]
|
|
1503
|
-
}), /* @__PURE__ */ (
|
|
1518
|
+
}), /* @__PURE__ */ E("div", {
|
|
1504
1519
|
className: "flex items-center gap-1",
|
|
1505
|
-
children: [/* @__PURE__ */ (
|
|
1520
|
+
children: [/* @__PURE__ */ T(g, {
|
|
1506
1521
|
type: "button",
|
|
1507
1522
|
variant: "ghost",
|
|
1508
1523
|
size: "sm",
|
|
1509
1524
|
onClick: () => u(e),
|
|
1510
|
-
children: /* @__PURE__ */ (
|
|
1511
|
-
}), /* @__PURE__ */ (
|
|
1525
|
+
children: /* @__PURE__ */ T(ue, { className: "w-4 h-4" })
|
|
1526
|
+
}), /* @__PURE__ */ T(g, {
|
|
1512
1527
|
type: "button",
|
|
1513
1528
|
variant: "ghost",
|
|
1514
1529
|
size: "sm",
|
|
1515
1530
|
onClick: () => l(e.id),
|
|
1516
1531
|
disabled: a.disabled,
|
|
1517
|
-
children: /* @__PURE__ */ (
|
|
1532
|
+
children: /* @__PURE__ */ T(w, { className: "w-4 h-4" })
|
|
1518
1533
|
})]
|
|
1519
1534
|
})]
|
|
1520
|
-
}, e.id)), o.length === 0 && /* @__PURE__ */ (
|
|
1535
|
+
}, e.id)), o.length === 0 && /* @__PURE__ */ T("div", {
|
|
1521
1536
|
className: "text-sm text-muted-foreground text-center py-4 border border-dashed rounded bg-muted/20",
|
|
1522
1537
|
children: "No related records"
|
|
1523
1538
|
})]
|
|
1524
|
-
}), /* @__PURE__ */ (
|
|
1539
|
+
}), /* @__PURE__ */ E(g, {
|
|
1525
1540
|
type: "button",
|
|
1526
1541
|
variant: "outline",
|
|
1527
1542
|
className: "w-full",
|
|
1528
1543
|
onClick: c,
|
|
1529
1544
|
disabled: a.disabled,
|
|
1530
1545
|
children: [
|
|
1531
|
-
/* @__PURE__ */ (
|
|
1546
|
+
/* @__PURE__ */ T(ve, { className: "w-4 h-4 mr-2" }),
|
|
1532
1547
|
"Add ",
|
|
1533
1548
|
s?.label || "Record"
|
|
1534
1549
|
]
|
|
@@ -1537,7 +1552,7 @@ function ze({ value: e, onChange: t, field: n, readonly: r, className: i, ...a }
|
|
|
1537
1552
|
}
|
|
1538
1553
|
//#endregion
|
|
1539
1554
|
//#region src/index.tsx
|
|
1540
|
-
function
|
|
1555
|
+
function W(e) {
|
|
1541
1556
|
if (e == null || typeof e == "string" || typeof e == "number" || typeof e == "boolean") return e;
|
|
1542
1557
|
if (e instanceof Date) return e.toISOString();
|
|
1543
1558
|
if (Array.isArray(e)) return e.map((e) => {
|
|
@@ -1553,7 +1568,7 @@ function H(e) {
|
|
|
1553
1568
|
}
|
|
1554
1569
|
return String(e);
|
|
1555
1570
|
}
|
|
1556
|
-
function
|
|
1571
|
+
function Ct(e, t = "USD") {
|
|
1557
1572
|
try {
|
|
1558
1573
|
return new Intl.NumberFormat("en-US", {
|
|
1559
1574
|
style: "currency",
|
|
@@ -1563,7 +1578,7 @@ function Be(e, t = "USD") {
|
|
|
1563
1578
|
return `${t} ${e.toFixed(2)}`;
|
|
1564
1579
|
}
|
|
1565
1580
|
}
|
|
1566
|
-
function
|
|
1581
|
+
function wt(e, t = "USD") {
|
|
1567
1582
|
try {
|
|
1568
1583
|
return new Intl.NumberFormat("en-US", {
|
|
1569
1584
|
style: "currency",
|
|
@@ -1575,39 +1590,39 @@ function Ve(e, t = "USD") {
|
|
|
1575
1590
|
return `${t} ${e}`;
|
|
1576
1591
|
}
|
|
1577
1592
|
}
|
|
1578
|
-
function
|
|
1593
|
+
function Tt(e, t = 0) {
|
|
1579
1594
|
return `${(e > -1 && e < 1 ? e * 100 : e).toFixed(t)}%`;
|
|
1580
1595
|
}
|
|
1581
|
-
function
|
|
1596
|
+
function G(e) {
|
|
1582
1597
|
return e.replace(/[_-]/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
|
|
1583
1598
|
}
|
|
1584
|
-
function
|
|
1585
|
-
if (!e) return "
|
|
1599
|
+
function Et(e) {
|
|
1600
|
+
if (!e) return "—";
|
|
1586
1601
|
let t = typeof e == "string" ? new Date(e) : e;
|
|
1587
|
-
if (isNaN(t.getTime())) return "
|
|
1602
|
+
if (isNaN(t.getTime())) return "—";
|
|
1588
1603
|
let n = /* @__PURE__ */ new Date(), r = new Date(n.getFullYear(), n.getMonth(), n.getDate()), i = new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() - r.getTime(), a = Math.round(i / (1e3 * 60 * 60 * 24));
|
|
1589
1604
|
if (a === 0) return "Today";
|
|
1590
1605
|
if (a === 1) return "Tomorrow";
|
|
1591
1606
|
if (a === -1) return "Yesterday";
|
|
1592
1607
|
if (a < -1) {
|
|
1593
1608
|
let e = Math.abs(a);
|
|
1594
|
-
return e <= 7 ? `Overdue ${e}d` :
|
|
1609
|
+
return e <= 7 ? `Overdue ${e}d` : K(t);
|
|
1595
1610
|
}
|
|
1596
|
-
return a > 1 && a <= 7 ? `In ${a} days` :
|
|
1611
|
+
return a > 1 && a <= 7 ? `In ${a} days` : K(t);
|
|
1597
1612
|
}
|
|
1598
|
-
function
|
|
1599
|
-
if (!e) return "
|
|
1613
|
+
function K(e, t) {
|
|
1614
|
+
if (!e) return "—";
|
|
1600
1615
|
let n = typeof e == "string" ? new Date(e) : e;
|
|
1601
|
-
return isNaN(n.getTime()) ? "
|
|
1616
|
+
return isNaN(n.getTime()) ? "—" : t === "short" ? `${n.toLocaleDateString("en-US", { month: "short" })} ${n.getDate()}, '${String(n.getFullYear()).slice(-2)}` : t === "relative" ? Et(n) : n.toLocaleDateString(void 0, {
|
|
1602
1617
|
year: "numeric",
|
|
1603
1618
|
month: "short",
|
|
1604
1619
|
day: "numeric"
|
|
1605
1620
|
});
|
|
1606
1621
|
}
|
|
1607
|
-
function
|
|
1608
|
-
if (!e) return "
|
|
1622
|
+
function Dt(e) {
|
|
1623
|
+
if (!e) return "—";
|
|
1609
1624
|
let t = typeof e == "string" ? new Date(e) : e;
|
|
1610
|
-
return isNaN(t.getTime()) ? "
|
|
1625
|
+
return isNaN(t.getTime()) ? "—" : t.toLocaleDateString(void 0, {
|
|
1611
1626
|
year: "numeric",
|
|
1612
1627
|
month: "short",
|
|
1613
1628
|
day: "numeric",
|
|
@@ -1615,20 +1630,17 @@ function We(e) {
|
|
|
1615
1630
|
minute: "2-digit"
|
|
1616
1631
|
});
|
|
1617
1632
|
}
|
|
1618
|
-
function
|
|
1619
|
-
let t =
|
|
1620
|
-
return /* @__PURE__ */ (
|
|
1633
|
+
function q({ value: e }) {
|
|
1634
|
+
let t = W(e);
|
|
1635
|
+
return t == null || t === "" ? /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ T("span", {
|
|
1621
1636
|
className: "truncate",
|
|
1622
|
-
children:
|
|
1637
|
+
children: String(t)
|
|
1623
1638
|
});
|
|
1624
1639
|
}
|
|
1625
|
-
function
|
|
1626
|
-
if (e == null) return /* @__PURE__ */ (
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
});
|
|
1630
|
-
let n = H(e), r = t.precision ?? 0, i = Number(n);
|
|
1631
|
-
return /* @__PURE__ */ (0, A.jsx)("span", {
|
|
1640
|
+
function Ot({ value: e, field: t }) {
|
|
1641
|
+
if (e == null) return /* @__PURE__ */ T(v, {});
|
|
1642
|
+
let n = W(e), r = t.precision ?? 0, i = Number(n);
|
|
1643
|
+
return /* @__PURE__ */ T("span", {
|
|
1632
1644
|
className: "tabular-nums",
|
|
1633
1645
|
children: isNaN(i) ? String(n) : new Intl.NumberFormat("en-US", {
|
|
1634
1646
|
minimumFractionDigits: r,
|
|
@@ -1636,48 +1648,42 @@ function Ge({ value: e, field: t }) {
|
|
|
1636
1648
|
}).format(i)
|
|
1637
1649
|
});
|
|
1638
1650
|
}
|
|
1639
|
-
function
|
|
1640
|
-
if (e == null) return /* @__PURE__ */ (
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
});
|
|
1644
|
-
let n = H(e), r = t.currency || "USD", i = Number(n);
|
|
1645
|
-
return /* @__PURE__ */ (0, A.jsx)("span", {
|
|
1651
|
+
function kt({ value: e, field: t }) {
|
|
1652
|
+
if (e == null) return /* @__PURE__ */ T(v, {});
|
|
1653
|
+
let n = W(e), r = t.currency || "USD", i = Number(n);
|
|
1654
|
+
return /* @__PURE__ */ T("span", {
|
|
1646
1655
|
className: "tabular-nums font-medium whitespace-nowrap",
|
|
1647
|
-
children: isNaN(i) ? String(n) :
|
|
1656
|
+
children: isNaN(i) ? String(n) : Ct(i, r)
|
|
1648
1657
|
});
|
|
1649
1658
|
}
|
|
1650
|
-
var
|
|
1651
|
-
function
|
|
1652
|
-
if (e == null) return /* @__PURE__ */ (
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
});
|
|
1656
|
-
let n = H(e), r = t.precision ?? 0, i = Number(n);
|
|
1657
|
-
if (isNaN(i)) return /* @__PURE__ */ (0, A.jsx)("span", {
|
|
1659
|
+
var At = /progress|completion/;
|
|
1660
|
+
function jt({ value: e, field: t }) {
|
|
1661
|
+
if (e == null) return /* @__PURE__ */ T(v, {});
|
|
1662
|
+
let n = W(e), r = t.precision ?? 0, i = Number(n);
|
|
1663
|
+
if (isNaN(i)) return /* @__PURE__ */ T("span", {
|
|
1658
1664
|
className: "tabular-nums whitespace-nowrap",
|
|
1659
1665
|
children: String(n)
|
|
1660
1666
|
});
|
|
1661
|
-
let a =
|
|
1662
|
-
return /* @__PURE__ */ (
|
|
1667
|
+
let a = At.test(t?.name?.toLowerCase() || ""), o = a ? i : i > -1 && i < 1 ? i * 100 : i, s = a ? `${i.toFixed(r)}%` : Tt(i, r), c = Math.max(0, Math.min(100, o));
|
|
1668
|
+
return /* @__PURE__ */ E("div", {
|
|
1663
1669
|
className: "flex items-center gap-2",
|
|
1664
|
-
children: [/* @__PURE__ */ (
|
|
1670
|
+
children: [/* @__PURE__ */ T("div", {
|
|
1665
1671
|
className: "h-1.5 w-16 rounded-full bg-muted overflow-hidden flex-shrink-0",
|
|
1666
1672
|
role: "progressbar",
|
|
1667
1673
|
"aria-valuenow": c,
|
|
1668
1674
|
"aria-valuemin": 0,
|
|
1669
1675
|
"aria-valuemax": 100,
|
|
1670
|
-
children: /* @__PURE__ */ (
|
|
1676
|
+
children: /* @__PURE__ */ T("div", {
|
|
1671
1677
|
className: "h-full rounded-full bg-primary transition-all",
|
|
1672
1678
|
style: { width: `${c}%` }
|
|
1673
1679
|
})
|
|
1674
|
-
}), /* @__PURE__ */ (
|
|
1680
|
+
}), /* @__PURE__ */ T("span", {
|
|
1675
1681
|
className: "tabular-nums whitespace-nowrap",
|
|
1676
1682
|
children: s
|
|
1677
1683
|
})]
|
|
1678
1684
|
});
|
|
1679
1685
|
}
|
|
1680
|
-
var
|
|
1686
|
+
var Mt = new Set([
|
|
1681
1687
|
"active",
|
|
1682
1688
|
"is_active",
|
|
1683
1689
|
"enabled",
|
|
@@ -1685,64 +1691,55 @@ var Ye = new Set([
|
|
|
1685
1691
|
"verified",
|
|
1686
1692
|
"is_verified"
|
|
1687
1693
|
]);
|
|
1688
|
-
function
|
|
1689
|
-
if (e == null) return /* @__PURE__ */ (
|
|
1690
|
-
className: "
|
|
1691
|
-
children:
|
|
1694
|
+
function Nt({ value: e, field: t }) {
|
|
1695
|
+
if (e == null) return /* @__PURE__ */ T("span", {
|
|
1696
|
+
className: "flex items-center justify-center",
|
|
1697
|
+
children: /* @__PURE__ */ T(v, {})
|
|
1692
1698
|
});
|
|
1693
1699
|
let n = t?.name?.toLowerCase() || "";
|
|
1694
|
-
return n === "completed" || n === "is_completed" || n === "done" || n === "is_done" ? /* @__PURE__ */ (
|
|
1700
|
+
return n === "completed" || n === "is_completed" || n === "done" || n === "is_done" ? /* @__PURE__ */ T("div", {
|
|
1695
1701
|
className: "flex items-center justify-center",
|
|
1696
|
-
children: e ? /* @__PURE__ */ (
|
|
1702
|
+
children: e ? /* @__PURE__ */ T("div", {
|
|
1697
1703
|
className: "size-5 rounded-full bg-green-500 flex items-center justify-center",
|
|
1698
1704
|
role: "img",
|
|
1699
1705
|
"aria-label": "Completed",
|
|
1700
1706
|
"data-testid": "completion-indicator",
|
|
1701
|
-
children: /* @__PURE__ */ (
|
|
1702
|
-
}) : /* @__PURE__ */ (
|
|
1707
|
+
children: /* @__PURE__ */ T(oe, { className: "size-3 text-white" })
|
|
1708
|
+
}) : /* @__PURE__ */ T("div", {
|
|
1703
1709
|
className: "size-5 rounded-full border-2 border-muted-foreground/30",
|
|
1704
1710
|
role: "img",
|
|
1705
1711
|
"aria-label": "Not completed",
|
|
1706
1712
|
"data-testid": "completion-indicator"
|
|
1707
1713
|
})
|
|
1708
|
-
}) :
|
|
1714
|
+
}) : Mt.has(n) && !e ? /* @__PURE__ */ E(h, {
|
|
1709
1715
|
variant: "destructive",
|
|
1710
1716
|
className: "text-xs",
|
|
1711
1717
|
"data-testid": "boolean-warning-badge",
|
|
1712
|
-
children: [t?.label ||
|
|
1713
|
-
}) : /* @__PURE__ */ (
|
|
1718
|
+
children: [t?.label || G(n), " — Off"]
|
|
1719
|
+
}) : /* @__PURE__ */ T("div", {
|
|
1714
1720
|
className: "flex items-center justify-center",
|
|
1715
|
-
children: /* @__PURE__ */ (
|
|
1721
|
+
children: /* @__PURE__ */ T(_, {
|
|
1716
1722
|
checked: !!e,
|
|
1717
1723
|
disabled: !0,
|
|
1718
1724
|
className: "pointer-events-none"
|
|
1719
1725
|
})
|
|
1720
1726
|
});
|
|
1721
1727
|
}
|
|
1722
|
-
function
|
|
1723
|
-
if (!e) return /* @__PURE__ */ (
|
|
1724
|
-
|
|
1725
|
-
children: "-"
|
|
1726
|
-
});
|
|
1727
|
-
let n = H(e), r = W(n, t.format || "relative"), i = typeof n == "string" ? new Date(n) : n, a = i instanceof Date && !isNaN(i.getTime()), o = /* @__PURE__ */ new Date();
|
|
1728
|
+
function Pt({ value: e, field: t }) {
|
|
1729
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1730
|
+
let n = W(e), r = K(n, t.format || "relative"), i = typeof n == "string" ? new Date(n) : n, a = i instanceof Date && !isNaN(i.getTime()), o = /* @__PURE__ */ new Date();
|
|
1728
1731
|
o.setHours(0, 0, 0, 0);
|
|
1729
1732
|
let s = a && i < o, c = a ? i.toISOString() : String(n);
|
|
1730
|
-
return /* @__PURE__ */ (
|
|
1733
|
+
return /* @__PURE__ */ T("span", {
|
|
1731
1734
|
className: `tabular-nums${s ? " text-red-600" : ""}`,
|
|
1732
1735
|
title: c,
|
|
1733
1736
|
children: r
|
|
1734
1737
|
});
|
|
1735
1738
|
}
|
|
1736
|
-
function
|
|
1737
|
-
if (!e) return /* @__PURE__ */ (
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
});
|
|
1741
|
-
let t = H(e), n = typeof t == "string" ? new Date(t) : t;
|
|
1742
|
-
if (!(n instanceof Date) || isNaN(n.getTime())) return /* @__PURE__ */ (0, A.jsx)("span", {
|
|
1743
|
-
className: "text-muted-foreground",
|
|
1744
|
-
children: "-"
|
|
1745
|
-
});
|
|
1739
|
+
function Ft({ value: e }) {
|
|
1740
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1741
|
+
let t = W(e), n = typeof t == "string" ? new Date(t) : t;
|
|
1742
|
+
if (!(n instanceof Date) || isNaN(n.getTime())) return /* @__PURE__ */ T(v, {});
|
|
1746
1743
|
let r = n.toLocaleDateString(void 0, {
|
|
1747
1744
|
month: "numeric",
|
|
1748
1745
|
day: "numeric",
|
|
@@ -1752,15 +1749,15 @@ function Qe({ value: e }) {
|
|
|
1752
1749
|
minute: "2-digit",
|
|
1753
1750
|
hour12: !0
|
|
1754
1751
|
}).toLowerCase();
|
|
1755
|
-
return /* @__PURE__ */ (
|
|
1752
|
+
return /* @__PURE__ */ E("span", {
|
|
1756
1753
|
className: "tabular-nums text-sm whitespace-nowrap",
|
|
1757
|
-
children: [/* @__PURE__ */ (
|
|
1754
|
+
children: [/* @__PURE__ */ T("span", { children: r }), /* @__PURE__ */ T("span", {
|
|
1758
1755
|
className: "ml-2 text-muted-foreground",
|
|
1759
1756
|
children: i
|
|
1760
1757
|
})]
|
|
1761
1758
|
});
|
|
1762
1759
|
}
|
|
1763
|
-
var
|
|
1760
|
+
var It = {
|
|
1764
1761
|
critical: "red",
|
|
1765
1762
|
urgent: "red",
|
|
1766
1763
|
high: "orange",
|
|
@@ -1792,7 +1789,7 @@ var $e = {
|
|
|
1792
1789
|
overdue: "red",
|
|
1793
1790
|
delivered: "purple",
|
|
1794
1791
|
archived: "indigo"
|
|
1795
|
-
},
|
|
1792
|
+
}, J = {
|
|
1796
1793
|
gray: "bg-gray-100 text-gray-800 border-gray-300",
|
|
1797
1794
|
red: "bg-red-100 text-red-800 border-red-300",
|
|
1798
1795
|
orange: "bg-orange-100 text-orange-800 border-orange-300",
|
|
@@ -1802,46 +1799,63 @@ var $e = {
|
|
|
1802
1799
|
indigo: "bg-indigo-100 text-indigo-800 border-indigo-300",
|
|
1803
1800
|
purple: "bg-purple-100 text-purple-800 border-purple-300",
|
|
1804
1801
|
pink: "bg-pink-100 text-pink-800 border-pink-300"
|
|
1805
|
-
}
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1802
|
+
}, Lt = [
|
|
1803
|
+
"blue",
|
|
1804
|
+
"green",
|
|
1805
|
+
"purple",
|
|
1806
|
+
"orange",
|
|
1807
|
+
"pink",
|
|
1808
|
+
"indigo",
|
|
1809
|
+
"yellow",
|
|
1810
|
+
"red"
|
|
1811
|
+
];
|
|
1812
|
+
function Rt(e) {
|
|
1813
|
+
let t = 5381;
|
|
1814
|
+
for (let n = 0; n < e.length; n++) t = (t << 5) + t ^ e.charCodeAt(n);
|
|
1815
|
+
return Lt[Math.abs(t) % Lt.length];
|
|
1816
|
+
}
|
|
1817
|
+
function zt(e, t) {
|
|
1818
|
+
if (e && J[e]) return J[e];
|
|
1819
|
+
if (t == null || t === "") return "bg-muted text-muted-foreground border-border";
|
|
1820
|
+
let n = String(t).toLowerCase().replace(/[\s-]/g, "_"), r = It[n];
|
|
1821
|
+
return r && J[r] ? J[r] : J[Rt(n)];
|
|
1822
|
+
}
|
|
1823
|
+
function Y({ value: e, field: t }) {
|
|
1810
1824
|
let n = t.options || [];
|
|
1811
|
-
if (
|
|
1812
|
-
if (Array.isArray(e)) return /* @__PURE__ */ (
|
|
1825
|
+
if (e == null || e === "") return /* @__PURE__ */ T(v, {});
|
|
1826
|
+
if (Array.isArray(e)) return /* @__PURE__ */ T("div", {
|
|
1813
1827
|
className: "flex flex-wrap gap-1",
|
|
1814
1828
|
children: e.map((e, t) => {
|
|
1815
|
-
let r = n.find((t) => t.value === e), i = r?.label ||
|
|
1816
|
-
return /* @__PURE__ */ (
|
|
1829
|
+
let r = n.find((t) => t.value === e), i = r?.label || G(String(e));
|
|
1830
|
+
return /* @__PURE__ */ T(h, {
|
|
1817
1831
|
variant: "outline",
|
|
1818
|
-
className:
|
|
1832
|
+
className: zt(r?.color, e),
|
|
1819
1833
|
children: i
|
|
1820
1834
|
}, t);
|
|
1821
1835
|
})
|
|
1822
1836
|
});
|
|
1823
|
-
let r = n.find((t) => t.value === e), i = r?.label ||
|
|
1824
|
-
return /* @__PURE__ */ (
|
|
1837
|
+
let r = n.find((t) => t.value === e), i = r?.label || G(String(e));
|
|
1838
|
+
return /* @__PURE__ */ T(h, {
|
|
1825
1839
|
variant: "outline",
|
|
1826
|
-
className:
|
|
1840
|
+
className: zt(r?.color, e),
|
|
1827
1841
|
children: i
|
|
1828
1842
|
});
|
|
1829
1843
|
}
|
|
1830
|
-
function
|
|
1831
|
-
if (!e) return /* @__PURE__ */ (
|
|
1832
|
-
let t = String(
|
|
1833
|
-
return /* @__PURE__ */ (
|
|
1844
|
+
function Bt({ value: e }) {
|
|
1845
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1846
|
+
let t = String(W(e) ?? ""), [n, r] = a.useState(!1);
|
|
1847
|
+
return /* @__PURE__ */ E("span", {
|
|
1834
1848
|
className: "inline-flex items-center gap-1 group/email",
|
|
1835
|
-
children: [/* @__PURE__ */ (
|
|
1849
|
+
children: [/* @__PURE__ */ T(g, {
|
|
1836
1850
|
variant: "link",
|
|
1837
1851
|
className: "p-0 h-auto font-normal text-blue-600 hover:text-blue-800",
|
|
1838
1852
|
asChild: !0,
|
|
1839
|
-
children: /* @__PURE__ */ (
|
|
1853
|
+
children: /* @__PURE__ */ T("a", {
|
|
1840
1854
|
href: `mailto:${t}`,
|
|
1841
1855
|
onClick: (e) => e.stopPropagation(),
|
|
1842
1856
|
children: t
|
|
1843
1857
|
})
|
|
1844
|
-
}), /* @__PURE__ */ (
|
|
1858
|
+
}), /* @__PURE__ */ T("button", {
|
|
1845
1859
|
type: "button",
|
|
1846
1860
|
className: "opacity-0 group-hover/email:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted",
|
|
1847
1861
|
onClick: (e) => {
|
|
@@ -1850,18 +1864,18 @@ function nt({ value: e }) {
|
|
|
1850
1864
|
}).catch(() => {});
|
|
1851
1865
|
},
|
|
1852
1866
|
"aria-label": "Copy email",
|
|
1853
|
-
children: n ? /* @__PURE__ */ (
|
|
1867
|
+
children: n ? /* @__PURE__ */ T(oe, { className: "h-3 w-3 text-green-600" }) : /* @__PURE__ */ T(se, { className: "h-3 w-3 text-muted-foreground" })
|
|
1854
1868
|
})]
|
|
1855
1869
|
});
|
|
1856
1870
|
}
|
|
1857
|
-
function
|
|
1858
|
-
if (!e) return /* @__PURE__ */ (
|
|
1859
|
-
let t = String(
|
|
1860
|
-
return /* @__PURE__ */ (
|
|
1871
|
+
function Vt({ value: e }) {
|
|
1872
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1873
|
+
let t = String(W(e) ?? "");
|
|
1874
|
+
return /* @__PURE__ */ T(g, {
|
|
1861
1875
|
variant: "link",
|
|
1862
1876
|
className: "p-0 h-auto font-normal text-blue-600 hover:text-blue-800",
|
|
1863
1877
|
asChild: !0,
|
|
1864
|
-
children: /* @__PURE__ */ (
|
|
1878
|
+
children: /* @__PURE__ */ T("a", {
|
|
1865
1879
|
href: t,
|
|
1866
1880
|
target: "_blank",
|
|
1867
1881
|
rel: "noopener noreferrer",
|
|
@@ -1870,17 +1884,17 @@ function rt({ value: e }) {
|
|
|
1870
1884
|
})
|
|
1871
1885
|
});
|
|
1872
1886
|
}
|
|
1873
|
-
function
|
|
1874
|
-
if (!e) return /* @__PURE__ */ (
|
|
1875
|
-
let t = String(
|
|
1876
|
-
return /* @__PURE__ */ (
|
|
1887
|
+
function Ht({ value: e }) {
|
|
1888
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1889
|
+
let t = String(W(e) ?? ""), [n, r] = a.useState(!1);
|
|
1890
|
+
return /* @__PURE__ */ E("span", {
|
|
1877
1891
|
className: "inline-flex items-center gap-1 group/phone",
|
|
1878
|
-
children: [/* @__PURE__ */ (
|
|
1892
|
+
children: [/* @__PURE__ */ E("a", {
|
|
1879
1893
|
href: `tel:${t}`,
|
|
1880
1894
|
className: "inline-flex items-center gap-1 text-blue-600 hover:text-blue-800",
|
|
1881
1895
|
onClick: (e) => e.stopPropagation(),
|
|
1882
|
-
children: [/* @__PURE__ */ (
|
|
1883
|
-
}), /* @__PURE__ */ (
|
|
1896
|
+
children: [/* @__PURE__ */ T(_e, { className: "h-3 w-3" }), t]
|
|
1897
|
+
}), /* @__PURE__ */ T("button", {
|
|
1884
1898
|
type: "button",
|
|
1885
1899
|
className: "opacity-0 group-hover/phone:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted",
|
|
1886
1900
|
onClick: (e) => {
|
|
@@ -1889,15 +1903,15 @@ function it({ value: e }) {
|
|
|
1889
1903
|
}).catch(() => {});
|
|
1890
1904
|
},
|
|
1891
1905
|
"aria-label": "Copy phone number",
|
|
1892
|
-
children: n ? /* @__PURE__ */ (
|
|
1906
|
+
children: n ? /* @__PURE__ */ T(oe, { className: "h-3 w-3 text-green-600" }) : /* @__PURE__ */ T(se, { className: "h-3 w-3 text-muted-foreground" })
|
|
1893
1907
|
})]
|
|
1894
1908
|
});
|
|
1895
1909
|
}
|
|
1896
|
-
function
|
|
1897
|
-
if (!e) return /* @__PURE__ */ (
|
|
1910
|
+
function Ut({ value: e, field: t }) {
|
|
1911
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1898
1912
|
if (t.multiple, Array.isArray(e)) {
|
|
1899
1913
|
let t = e.length;
|
|
1900
|
-
return /* @__PURE__ */ (
|
|
1914
|
+
return /* @__PURE__ */ E("span", {
|
|
1901
1915
|
className: "text-sm text-gray-600",
|
|
1902
1916
|
children: [
|
|
1903
1917
|
t,
|
|
@@ -1906,30 +1920,30 @@ function at({ value: e, field: t }) {
|
|
|
1906
1920
|
]
|
|
1907
1921
|
});
|
|
1908
1922
|
}
|
|
1909
|
-
return /* @__PURE__ */ (
|
|
1923
|
+
return /* @__PURE__ */ T("span", {
|
|
1910
1924
|
className: "text-sm truncate",
|
|
1911
1925
|
children: e.name || e.original_name || "File"
|
|
1912
1926
|
});
|
|
1913
1927
|
}
|
|
1914
|
-
function
|
|
1915
|
-
return e ? Array.isArray(e) ? /* @__PURE__ */ (
|
|
1928
|
+
function Wt({ value: e }) {
|
|
1929
|
+
return e ? Array.isArray(e) ? /* @__PURE__ */ E("div", {
|
|
1916
1930
|
className: "flex -space-x-2",
|
|
1917
|
-
children: [e.slice(0, 3).map((e, t) => /* @__PURE__ */ (
|
|
1931
|
+
children: [e.slice(0, 3).map((e, t) => /* @__PURE__ */ T("img", {
|
|
1918
1932
|
src: e.url || "",
|
|
1919
1933
|
alt: e.name || `Image ${t + 1}`,
|
|
1920
1934
|
className: "size-8 rounded-md border-2 border-white object-cover"
|
|
1921
|
-
}, t)), e.length > 3 && /* @__PURE__ */ (
|
|
1935
|
+
}, t)), e.length > 3 && /* @__PURE__ */ E("div", {
|
|
1922
1936
|
className: "size-8 rounded-md border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-medium text-gray-600",
|
|
1923
1937
|
children: ["+", e.length - 3]
|
|
1924
1938
|
})]
|
|
1925
|
-
}) : /* @__PURE__ */ (
|
|
1939
|
+
}) : /* @__PURE__ */ T("img", {
|
|
1926
1940
|
src: e.url || "",
|
|
1927
1941
|
alt: e.name || "Image",
|
|
1928
1942
|
className: "size-10 rounded-md object-cover"
|
|
1929
|
-
}) : /* @__PURE__ */ (
|
|
1943
|
+
}) : /* @__PURE__ */ T(v, {});
|
|
1930
1944
|
}
|
|
1931
|
-
function
|
|
1932
|
-
if (e == null || e === "") return /* @__PURE__ */ (
|
|
1945
|
+
function X({ value: e, field: t }) {
|
|
1946
|
+
if (e == null || e === "") return /* @__PURE__ */ T(v, {});
|
|
1933
1947
|
let n = t.options || [], r = (e) => {
|
|
1934
1948
|
if (n.length > 0) {
|
|
1935
1949
|
let t = n.find((t) => String(t.value) === String(e));
|
|
@@ -1937,124 +1951,124 @@ function q({ value: e, field: t }) {
|
|
|
1937
1951
|
}
|
|
1938
1952
|
return String(e);
|
|
1939
1953
|
};
|
|
1940
|
-
return Array.isArray(e) ? /* @__PURE__ */ (
|
|
1954
|
+
return Array.isArray(e) ? /* @__PURE__ */ T("div", {
|
|
1941
1955
|
className: "flex flex-wrap gap-1",
|
|
1942
1956
|
children: e.map((e, t) => {
|
|
1943
1957
|
let n;
|
|
1944
|
-
return n = typeof e == "object" && e ? e.name || e.label || e.id || e._id || String(e) : r(e), /* @__PURE__ */ (
|
|
1958
|
+
return n = typeof e == "object" && e ? e.name || e.label || e.id || e._id || String(e) : r(e), /* @__PURE__ */ T("span", {
|
|
1945
1959
|
className: "inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-100 text-gray-800",
|
|
1946
1960
|
children: n
|
|
1947
1961
|
}, t);
|
|
1948
1962
|
})
|
|
1949
|
-
}) : typeof e == "object" && e ? /* @__PURE__ */ (
|
|
1963
|
+
}) : typeof e == "object" && e ? /* @__PURE__ */ T("span", {
|
|
1950
1964
|
className: "truncate",
|
|
1951
1965
|
children: e.name || e.label || e.id || e._id || "[Object]"
|
|
1952
|
-
}) : /* @__PURE__ */ (
|
|
1966
|
+
}) : /* @__PURE__ */ T("span", {
|
|
1953
1967
|
className: "truncate",
|
|
1954
1968
|
children: r(e)
|
|
1955
1969
|
});
|
|
1956
1970
|
}
|
|
1957
|
-
function
|
|
1958
|
-
let t =
|
|
1959
|
-
return /* @__PURE__ */ (
|
|
1971
|
+
function Gt({ value: e }) {
|
|
1972
|
+
let t = W(e);
|
|
1973
|
+
return t == null || t === "" ? /* @__PURE__ */ T(v, {}) : /* @__PURE__ */ T("span", {
|
|
1960
1974
|
className: "text-gray-700 font-mono text-sm",
|
|
1961
|
-
children:
|
|
1975
|
+
children: String(t)
|
|
1962
1976
|
});
|
|
1963
1977
|
}
|
|
1964
|
-
function
|
|
1965
|
-
if (!e) return /* @__PURE__ */ (
|
|
1966
|
-
if (typeof e != "object") return /* @__PURE__ */ (
|
|
1978
|
+
function Z({ value: e }) {
|
|
1979
|
+
if (!e) return /* @__PURE__ */ T(v, {});
|
|
1980
|
+
if (typeof e != "object") return /* @__PURE__ */ T("span", {
|
|
1967
1981
|
className: "truncate",
|
|
1968
1982
|
children: String(e)
|
|
1969
1983
|
});
|
|
1970
|
-
if (Array.isArray(e)) return /* @__PURE__ */ (
|
|
1984
|
+
if (Array.isArray(e)) return /* @__PURE__ */ E("div", {
|
|
1971
1985
|
className: "flex -space-x-2",
|
|
1972
1986
|
children: [e.slice(0, 3).map((e, t) => {
|
|
1973
|
-
if (typeof e != "object" || !e) return /* @__PURE__ */ (
|
|
1987
|
+
if (typeof e != "object" || !e) return /* @__PURE__ */ T("span", {
|
|
1974
1988
|
className: "truncate text-sm",
|
|
1975
1989
|
children: String(e)
|
|
1976
1990
|
}, t);
|
|
1977
1991
|
let n = e.name || e.username || "User";
|
|
1978
|
-
return /* @__PURE__ */ (
|
|
1992
|
+
return /* @__PURE__ */ T(f, {
|
|
1979
1993
|
className: "size-8 border-2 border-white",
|
|
1980
1994
|
title: n,
|
|
1981
|
-
children: /* @__PURE__ */ (
|
|
1995
|
+
children: /* @__PURE__ */ T(p, {
|
|
1982
1996
|
className: "bg-blue-500 text-white text-xs",
|
|
1983
1997
|
children: n.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2)
|
|
1984
1998
|
})
|
|
1985
1999
|
}, t);
|
|
1986
|
-
}), e.length > 3 && /* @__PURE__ */ (
|
|
2000
|
+
}), e.length > 3 && /* @__PURE__ */ T(f, {
|
|
1987
2001
|
className: "size-8 border-2 border-white",
|
|
1988
|
-
children: /* @__PURE__ */ (
|
|
2002
|
+
children: /* @__PURE__ */ E(p, {
|
|
1989
2003
|
className: "bg-gray-200 text-gray-600 text-xs",
|
|
1990
2004
|
children: ["+", e.length - 3]
|
|
1991
2005
|
})
|
|
1992
2006
|
})]
|
|
1993
2007
|
});
|
|
1994
2008
|
let t = e.name || e.username || "User";
|
|
1995
|
-
return /* @__PURE__ */ (
|
|
2009
|
+
return /* @__PURE__ */ E("div", {
|
|
1996
2010
|
className: "flex items-center gap-2",
|
|
1997
|
-
children: [/* @__PURE__ */ (
|
|
2011
|
+
children: [/* @__PURE__ */ T(f, {
|
|
1998
2012
|
className: "size-8",
|
|
1999
|
-
children: /* @__PURE__ */ (
|
|
2013
|
+
children: /* @__PURE__ */ T(p, {
|
|
2000
2014
|
className: "bg-blue-500 text-white text-xs",
|
|
2001
2015
|
children: t.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2)
|
|
2002
2016
|
})
|
|
2003
|
-
}), /* @__PURE__ */ (
|
|
2017
|
+
}), /* @__PURE__ */ T("span", {
|
|
2004
2018
|
className: "truncate",
|
|
2005
2019
|
children: t
|
|
2006
2020
|
})]
|
|
2007
2021
|
});
|
|
2008
2022
|
}
|
|
2009
|
-
var
|
|
2010
|
-
function
|
|
2011
|
-
|
|
2012
|
-
}
|
|
2013
|
-
function
|
|
2014
|
-
return
|
|
2015
|
-
text:
|
|
2016
|
-
textarea:
|
|
2017
|
-
markdown:
|
|
2018
|
-
html:
|
|
2019
|
-
number:
|
|
2020
|
-
currency:
|
|
2021
|
-
percent:
|
|
2022
|
-
boolean:
|
|
2023
|
-
date:
|
|
2024
|
-
datetime:
|
|
2025
|
-
time:
|
|
2026
|
-
select:
|
|
2027
|
-
status:
|
|
2028
|
-
lookup:
|
|
2029
|
-
master_detail:
|
|
2030
|
-
email:
|
|
2031
|
-
url:
|
|
2032
|
-
phone:
|
|
2033
|
-
file:
|
|
2034
|
-
image:
|
|
2035
|
-
formula:
|
|
2036
|
-
summary:
|
|
2037
|
-
auto_number:
|
|
2038
|
-
user:
|
|
2039
|
-
owner:
|
|
2040
|
-
password: () => /* @__PURE__ */ (
|
|
2041
|
-
location:
|
|
2042
|
-
object: () => /* @__PURE__ */ (
|
|
2023
|
+
var Kt = /* @__PURE__ */ new Map();
|
|
2024
|
+
function Q(e, t) {
|
|
2025
|
+
Kt.set(e, t);
|
|
2026
|
+
}
|
|
2027
|
+
function qt(e) {
|
|
2028
|
+
return Kt.has(e) ? Kt.get(e) : {
|
|
2029
|
+
text: q,
|
|
2030
|
+
textarea: q,
|
|
2031
|
+
markdown: q,
|
|
2032
|
+
html: q,
|
|
2033
|
+
number: Ot,
|
|
2034
|
+
currency: kt,
|
|
2035
|
+
percent: jt,
|
|
2036
|
+
boolean: Nt,
|
|
2037
|
+
date: Pt,
|
|
2038
|
+
datetime: Ft,
|
|
2039
|
+
time: q,
|
|
2040
|
+
select: Y,
|
|
2041
|
+
status: Y,
|
|
2042
|
+
lookup: X,
|
|
2043
|
+
master_detail: X,
|
|
2044
|
+
email: Bt,
|
|
2045
|
+
url: Vt,
|
|
2046
|
+
phone: Ht,
|
|
2047
|
+
file: Ut,
|
|
2048
|
+
image: Wt,
|
|
2049
|
+
formula: Gt,
|
|
2050
|
+
summary: Gt,
|
|
2051
|
+
auto_number: q,
|
|
2052
|
+
user: Z,
|
|
2053
|
+
owner: Z,
|
|
2054
|
+
password: () => /* @__PURE__ */ T("span", { children: "••••••" }),
|
|
2055
|
+
location: q,
|
|
2056
|
+
object: () => /* @__PURE__ */ T("span", {
|
|
2043
2057
|
className: "text-gray-500 italic",
|
|
2044
2058
|
children: "[Object]"
|
|
2045
2059
|
}),
|
|
2046
|
-
vector: () => /* @__PURE__ */ (
|
|
2060
|
+
vector: () => /* @__PURE__ */ T("span", {
|
|
2047
2061
|
className: "text-gray-500 italic",
|
|
2048
2062
|
children: "[Vector]"
|
|
2049
2063
|
}),
|
|
2050
|
-
grid: () => /* @__PURE__ */ (
|
|
2064
|
+
grid: () => /* @__PURE__ */ T("span", {
|
|
2051
2065
|
className: "text-gray-500 italic",
|
|
2052
2066
|
children: "[Grid]"
|
|
2053
2067
|
})
|
|
2054
|
-
}[e] ||
|
|
2068
|
+
}[e] || q;
|
|
2055
2069
|
}
|
|
2056
|
-
|
|
2057
|
-
function
|
|
2070
|
+
Q("lookup", X), Q("master_detail", X), Q("select", Y), Q("status", Y), Q("user", Z), Q("owner", Z), r(qt);
|
|
2071
|
+
function Jt(e) {
|
|
2058
2072
|
return {
|
|
2059
2073
|
text: "field:text",
|
|
2060
2074
|
textarea: "field:textarea",
|
|
@@ -2082,7 +2096,7 @@ function ct(e) {
|
|
|
2082
2096
|
auto_number: "field:auto_number"
|
|
2083
2097
|
}[e] || "field:text";
|
|
2084
2098
|
}
|
|
2085
|
-
function
|
|
2099
|
+
function Yt(e) {
|
|
2086
2100
|
if (e < 0 || !Number.isFinite(e) || e === 0) return "0 B";
|
|
2087
2101
|
let t = [
|
|
2088
2102
|
"B",
|
|
@@ -2092,9 +2106,9 @@ function lt(e) {
|
|
|
2092
2106
|
"TB"
|
|
2093
2107
|
], n = e, r = 0;
|
|
2094
2108
|
for (; n >= 1024 && r < t.length - 1;) n /= 1024, r++;
|
|
2095
|
-
return `${n.toFixed(r > 0
|
|
2109
|
+
return `${n.toFixed(+(r > 0))} ${t[r]}`;
|
|
2096
2110
|
}
|
|
2097
|
-
function
|
|
2111
|
+
function Xt(e) {
|
|
2098
2112
|
let t = {};
|
|
2099
2113
|
return e.required && (t.required = typeof e.required_message == "string" ? e.required_message : `${e.label || e.name} is required`), e.min_length && (t.minLength = {
|
|
2100
2114
|
value: e.min_length,
|
|
@@ -2119,7 +2133,7 @@ function ut(e) {
|
|
|
2119
2133
|
message: "Please enter a valid URL"
|
|
2120
2134
|
}), e.validate && (t.validate = e.validate), Object.keys(t).length > 0 ? t : void 0;
|
|
2121
2135
|
}
|
|
2122
|
-
function
|
|
2136
|
+
function Zt(e, t) {
|
|
2123
2137
|
if (!e) return !0;
|
|
2124
2138
|
if (e.field && e.value !== void 0) {
|
|
2125
2139
|
let n = t[e.field];
|
|
@@ -2131,11 +2145,11 @@ function Q(e, t) {
|
|
|
2131
2145
|
if (e.operator === "<=") return n <= e.value;
|
|
2132
2146
|
if (e.operator === "in") return Array.isArray(e.value) && e.value.includes(n);
|
|
2133
2147
|
}
|
|
2134
|
-
return e.and && Array.isArray(e.and) ? e.and.every((e) =>
|
|
2148
|
+
return e.and && Array.isArray(e.and) ? e.and.every((e) => Zt(e, t)) : e.or && Array.isArray(e.or) ? e.or.some((e) => Zt(e, t)) : !0;
|
|
2135
2149
|
}
|
|
2136
2150
|
function $(e) {
|
|
2137
|
-
let t = ({ schema: t, className: n, value: r, ...
|
|
2138
|
-
let [o, s] =
|
|
2151
|
+
let t = ({ schema: t, className: n, value: r, ...i }) => {
|
|
2152
|
+
let [o, s] = a.useState(r ?? t?.value ?? ""), c = {
|
|
2139
2153
|
name: t?.name || "field",
|
|
2140
2154
|
label: t?.label,
|
|
2141
2155
|
type: t?.type,
|
|
@@ -2146,27 +2160,27 @@ function $(e) {
|
|
|
2146
2160
|
description: t?.description,
|
|
2147
2161
|
defaultValue: t?.defaultValue || t?.value,
|
|
2148
2162
|
...t
|
|
2149
|
-
}, l =
|
|
2150
|
-
s(e),
|
|
2151
|
-
}, [
|
|
2152
|
-
return /* @__PURE__ */ (
|
|
2163
|
+
}, l = a.useCallback((e) => {
|
|
2164
|
+
s(e), i.onChange && i.onChange(e);
|
|
2165
|
+
}, [i]), u = t?.readonly || t?.readOnly || !1;
|
|
2166
|
+
return /* @__PURE__ */ E("div", {
|
|
2153
2167
|
className: "grid w-full items-center gap-1.5",
|
|
2154
2168
|
"data-obj-id": t?.id,
|
|
2155
2169
|
"data-obj-type": t?.type,
|
|
2156
2170
|
children: [
|
|
2157
|
-
t?.label && /* @__PURE__ */ (
|
|
2171
|
+
t?.label && /* @__PURE__ */ T("label", {
|
|
2158
2172
|
htmlFor: t.id,
|
|
2159
2173
|
className: t.required ? "after:content-['*'] after:ml-0.5 after:text-red-500" : "",
|
|
2160
2174
|
children: t.label
|
|
2161
2175
|
}),
|
|
2162
|
-
/* @__PURE__ */ (
|
|
2176
|
+
/* @__PURE__ */ T(e, {
|
|
2163
2177
|
value: o,
|
|
2164
2178
|
onChange: l,
|
|
2165
2179
|
field: c,
|
|
2166
2180
|
readonly: u,
|
|
2167
2181
|
className: n
|
|
2168
2182
|
}),
|
|
2169
|
-
t?.description && /* @__PURE__ */ (
|
|
2183
|
+
t?.description && /* @__PURE__ */ T("p", {
|
|
2170
2184
|
className: "text-sm text-gray-500",
|
|
2171
2185
|
children: t.description
|
|
2172
2186
|
})
|
|
@@ -2175,63 +2189,63 @@ function $(e) {
|
|
|
2175
2189
|
};
|
|
2176
2190
|
return t.displayName = `FieldRenderer(${e.displayName || e.name || "Component"})`, t;
|
|
2177
2191
|
}
|
|
2178
|
-
var
|
|
2179
|
-
text: () =>
|
|
2180
|
-
textarea: () =>
|
|
2181
|
-
number: () =>
|
|
2182
|
-
boolean: () =>
|
|
2183
|
-
select: () =>
|
|
2184
|
-
date: () =>
|
|
2185
|
-
datetime: () =>
|
|
2186
|
-
time: () =>
|
|
2187
|
-
email: () =>
|
|
2188
|
-
phone: () =>
|
|
2189
|
-
url: () =>
|
|
2190
|
-
currency: () =>
|
|
2191
|
-
percent: () =>
|
|
2192
|
-
password: () =>
|
|
2193
|
-
markdown: () =>
|
|
2194
|
-
html: () =>
|
|
2195
|
-
lookup: () => import("./LookupField-
|
|
2196
|
-
master_detail: () =>
|
|
2197
|
-
file: () =>
|
|
2198
|
-
image: () =>
|
|
2199
|
-
location: () =>
|
|
2200
|
-
formula: () =>
|
|
2201
|
-
summary: () =>
|
|
2202
|
-
auto_number: () =>
|
|
2203
|
-
user: () =>
|
|
2204
|
-
owner: () =>
|
|
2205
|
-
object: () =>
|
|
2206
|
-
vector: () =>
|
|
2207
|
-
grid: () =>
|
|
2208
|
-
color: () =>
|
|
2209
|
-
slider: () =>
|
|
2210
|
-
rating: () =>
|
|
2211
|
-
code: () =>
|
|
2212
|
-
avatar: () =>
|
|
2213
|
-
address: () =>
|
|
2214
|
-
geolocation: () =>
|
|
2215
|
-
signature: () =>
|
|
2216
|
-
qrcode: () =>
|
|
2192
|
+
var Qt = {
|
|
2193
|
+
text: () => Promise.resolve().then(() => Ce).then((e) => ({ default: e.TextField })),
|
|
2194
|
+
textarea: () => Promise.resolve().then(() => Ne).then((e) => ({ default: e.TextAreaField })),
|
|
2195
|
+
number: () => Promise.resolve().then(() => we).then((e) => ({ default: e.NumberField })),
|
|
2196
|
+
boolean: () => Promise.resolve().then(() => Te).then((e) => ({ default: e.BooleanField })),
|
|
2197
|
+
select: () => Promise.resolve().then(() => Ee).then((e) => ({ default: e.SelectField })),
|
|
2198
|
+
date: () => Promise.resolve().then(() => De).then((e) => ({ default: e.DateField })),
|
|
2199
|
+
datetime: () => Promise.resolve().then(() => Fe).then((e) => ({ default: e.DateTimeField })),
|
|
2200
|
+
time: () => Promise.resolve().then(() => Ie).then((e) => ({ default: e.TimeField })),
|
|
2201
|
+
email: () => Promise.resolve().then(() => Oe).then((e) => ({ default: e.EmailField })),
|
|
2202
|
+
phone: () => Promise.resolve().then(() => ke).then((e) => ({ default: e.PhoneField })),
|
|
2203
|
+
url: () => Promise.resolve().then(() => Ae).then((e) => ({ default: e.UrlField })),
|
|
2204
|
+
currency: () => Promise.resolve().then(() => je).then((e) => ({ default: e.CurrencyField })),
|
|
2205
|
+
percent: () => Promise.resolve().then(() => Le).then((e) => ({ default: e.PercentField })),
|
|
2206
|
+
password: () => Promise.resolve().then(() => Re).then((e) => ({ default: e.PasswordField })),
|
|
2207
|
+
markdown: () => Promise.resolve().then(() => Pe).then((e) => ({ default: e.RichTextField })),
|
|
2208
|
+
html: () => Promise.resolve().then(() => Pe).then((e) => ({ default: e.RichTextField })),
|
|
2209
|
+
lookup: () => import("./LookupField-De-GqsfT.js").then((e) => e.n).then((e) => ({ default: e.LookupField })),
|
|
2210
|
+
master_detail: () => Promise.resolve().then(() => xt).then((e) => ({ default: e.MasterDetailField })),
|
|
2211
|
+
file: () => Promise.resolve().then(() => ze).then((e) => ({ default: e.FileField })),
|
|
2212
|
+
image: () => Promise.resolve().then(() => Ve).then((e) => ({ default: e.ImageField })),
|
|
2213
|
+
location: () => Promise.resolve().then(() => Ue).then((e) => ({ default: e.LocationField })),
|
|
2214
|
+
formula: () => Promise.resolve().then(() => Ge).then((e) => ({ default: e.FormulaField })),
|
|
2215
|
+
summary: () => Promise.resolve().then(() => Ke).then((e) => ({ default: e.SummaryField })),
|
|
2216
|
+
auto_number: () => Promise.resolve().then(() => Je).then((e) => ({ default: e.AutoNumberField })),
|
|
2217
|
+
user: () => Promise.resolve().then(() => Xe).then((e) => ({ default: e.UserField })),
|
|
2218
|
+
owner: () => Promise.resolve().then(() => Xe).then((e) => ({ default: e.UserField })),
|
|
2219
|
+
object: () => Promise.resolve().then(() => Ze).then((e) => ({ default: e.ObjectField })),
|
|
2220
|
+
vector: () => Promise.resolve().then(() => $e).then((e) => ({ default: e.VectorField })),
|
|
2221
|
+
grid: () => Promise.resolve().then(() => tt).then((e) => ({ default: e.GridField })),
|
|
2222
|
+
color: () => Promise.resolve().then(() => rt).then((e) => ({ default: e.ColorField })),
|
|
2223
|
+
slider: () => Promise.resolve().then(() => at).then((e) => ({ default: e.SliderField })),
|
|
2224
|
+
rating: () => Promise.resolve().then(() => st).then((e) => ({ default: e.RatingField })),
|
|
2225
|
+
code: () => Promise.resolve().then(() => lt).then((e) => ({ default: e.CodeField })),
|
|
2226
|
+
avatar: () => Promise.resolve().then(() => dt).then((e) => ({ default: e.AvatarField })),
|
|
2227
|
+
address: () => Promise.resolve().then(() => pt).then((e) => ({ default: e.AddressField })),
|
|
2228
|
+
geolocation: () => Promise.resolve().then(() => ht).then((e) => ({ default: e.GeolocationField })),
|
|
2229
|
+
signature: () => Promise.resolve().then(() => _t).then((e) => ({ default: e.SignatureField })),
|
|
2230
|
+
qrcode: () => Promise.resolve().then(() => yt).then((e) => ({ default: e.QRCodeField }))
|
|
2217
2231
|
};
|
|
2218
|
-
function
|
|
2219
|
-
let t =
|
|
2232
|
+
function $t(e) {
|
|
2233
|
+
let t = Qt[e];
|
|
2220
2234
|
if (!t) {
|
|
2221
2235
|
console.warn(`Unknown field type: ${e}`);
|
|
2222
2236
|
return;
|
|
2223
2237
|
}
|
|
2224
|
-
let n =
|
|
2225
|
-
|
|
2238
|
+
let n = a.lazy(t);
|
|
2239
|
+
d.register(e, n, { namespace: "field" });
|
|
2226
2240
|
}
|
|
2227
|
-
function
|
|
2228
|
-
Object.keys(
|
|
2229
|
-
|
|
2241
|
+
function en() {
|
|
2242
|
+
Object.keys(Qt).forEach((e) => {
|
|
2243
|
+
$t(e);
|
|
2230
2244
|
});
|
|
2231
2245
|
}
|
|
2232
|
-
function
|
|
2233
|
-
|
|
2246
|
+
function tn() {
|
|
2247
|
+
d.register("text", $(D), { namespace: "field" }), d.register("textarea", $(I), { namespace: "field" }), d.register("number", $(O), { namespace: "field" }), d.register("boolean", $(k), { namespace: "field" }), d.register("select", $(A), { namespace: "field" }), d.register("date", $(j), { namespace: "field" }), d.register("datetime", $(R), { namespace: "field" }), d.register("time", $(z), { namespace: "field" }), d.register("email", $(M), { namespace: "field" }), d.register("phone", $(N), { namespace: "field" }), d.register("url", $(P), { namespace: "field" }), d.register("currency", $(F), { namespace: "field" }), d.register("percent", $(B), { namespace: "field" }), d.register("password", $(V), { namespace: "field" }), d.register("markdown", $(L), { namespace: "field" }), d.register("html", $(L), { namespace: "field" }), d.register("lookup", $(i), { namespace: "field" }), d.register("master_detail", $(St), { namespace: "field" }), d.register("file", $(Be), { namespace: "field" }), d.register("image", $(He), { namespace: "field" }), d.register("location", $(We), { namespace: "field" }), d.register("formula", $(H), { namespace: "field" }), d.register("summary", $(qe), { namespace: "field" }), d.register("auto_number", $(Ye), { namespace: "field" }), d.register("user", $(U), { namespace: "field" }), d.register("owner", $(U), { namespace: "field" }), d.register("object", $(Qe), { namespace: "field" }), d.register("vector", $(et), { namespace: "field" }), d.register("grid", $(nt), { namespace: "field" }), d.register("color", $(it), { namespace: "field" }), d.register("slider", $(ot), { namespace: "field" }), d.register("rating", $(ct), { namespace: "field" }), d.register("code", $(ut), { namespace: "field" }), d.register("avatar", $(ft), { namespace: "field" }), d.register("address", $(mt), { namespace: "field" }), d.register("geolocation", $(gt), { namespace: "field" }), d.register("signature", $(vt), { namespace: "field" }), d.register("qrcode", $(bt), { namespace: "field" });
|
|
2234
2248
|
}
|
|
2235
|
-
|
|
2249
|
+
en();
|
|
2236
2250
|
//#endregion
|
|
2237
|
-
export {
|
|
2251
|
+
export { mt as AddressField, Ye as AutoNumberField, ft as AvatarField, Nt as BooleanCellRenderer, k as BooleanField, ut as CodeField, it as ColorField, kt as CurrencyCellRenderer, F as CurrencyField, Pt as DateCellRenderer, j as DateField, Ft as DateTimeCellRenderer, R as DateTimeField, Bt as EmailCellRenderer, M as EmailField, Ut as FileCellRenderer, Be as FileField, Gt as FormulaCellRenderer, H as FormulaField, gt as GeolocationField, nt as GridField, Wt as ImageCellRenderer, He as ImageField, We as LocationField, X as LookupCellRenderer, i as LookupField, St as MasterDetailField, Ot as NumberCellRenderer, O as NumberField, Qe as ObjectField, V as PasswordField, jt as PercentCellRenderer, B as PercentField, Ht as PhoneCellRenderer, N as PhoneField, bt as QRCodeField, ct as RatingField, n as RecordPickerDialog, L as RichTextField, Y as SelectCellRenderer, A as SelectField, vt as SignatureField, ot as SliderField, qe as SummaryField, I as TextAreaField, q as TextCellRenderer, D as TextField, z as TimeField, Vt as UrlCellRenderer, P as UrlField, Z as UserCellRenderer, U as UserField, et as VectorField, Xt as buildValidationRules, W as coerceToSafeValue, Zt as evaluateCondition, wt as formatCompactCurrency, Ct as formatCurrency, K as formatDate, Dt as formatDateTime, Yt as formatFileSize, Tt as formatPercent, Et as formatRelativeDate, qt as getCellRenderer, G as humanizeLabel, Jt as mapFieldTypeToFormType, en as registerAllFields, $t as registerField, Q as registerFieldRenderer, tn as registerFields };
|