@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Input } from '@object-ui/components';
|
|
2
|
+
import { Input, EmptyValue } from '@object-ui/components';
|
|
3
3
|
import { FieldWidgetProps } from './types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -8,7 +8,7 @@ import { FieldWidgetProps } from './types';
|
|
|
8
8
|
*/
|
|
9
9
|
export function TimeField({ value, onChange, field, readonly, ...props }: FieldWidgetProps<string>) {
|
|
10
10
|
if (readonly) {
|
|
11
|
-
return <span className="text-sm">{value ||
|
|
11
|
+
return <span className="text-sm">{value || <EmptyValue />}</span>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// Filter out non-DOM props
|
package/src/widgets/UrlField.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Input } from '@object-ui/components';
|
|
2
|
+
import { Input, EmptyValue } from '@object-ui/components';
|
|
3
3
|
import { FieldWidgetProps } from './types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -9,7 +9,7 @@ import { FieldWidgetProps } from './types';
|
|
|
9
9
|
export function UrlField({ value, onChange, field, readonly, errorMessage, ...props }: FieldWidgetProps<string>) {
|
|
10
10
|
const config = field || (props as any).schema;
|
|
11
11
|
if (readonly) {
|
|
12
|
-
if (!value) return <
|
|
12
|
+
if (!value) return <EmptyValue />;
|
|
13
13
|
|
|
14
14
|
// Validate URL to prevent javascript: or data: URLs
|
|
15
15
|
const isValidUrl = value.startsWith('http://') || value.startsWith('https://');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Avatar, AvatarFallback, Badge } from '@object-ui/components';
|
|
2
|
+
import { Avatar, AvatarFallback, Badge, EmptyValue } from '@object-ui/components';
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import { FieldWidgetProps } from './types';
|
|
5
5
|
|
|
@@ -12,7 +12,7 @@ export function UserField({ value, onChange, field, readonly, ...props }: FieldW
|
|
|
12
12
|
const multiple = userField?.multiple || false;
|
|
13
13
|
|
|
14
14
|
if (readonly) {
|
|
15
|
-
if (!value) return <
|
|
15
|
+
if (!value) return <EmptyValue />;
|
|
16
16
|
|
|
17
17
|
const users = Array.isArray(value) ? value : [value];
|
|
18
18
|
return (
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { EmptyValue } from '@object-ui/components';
|
|
2
3
|
import { FieldWidgetProps } from './types';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -10,7 +11,7 @@ export function VectorField({ value, field, ...props }: FieldWidgetProps<number[
|
|
|
10
11
|
const dimensions = vectorField?.dimensions || (Array.isArray(value) ? value.length : 0);
|
|
11
12
|
|
|
12
13
|
if (!value || !Array.isArray(value)) {
|
|
13
|
-
return <
|
|
14
|
+
return <EmptyValue />;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
// Show first few values and total dimensions
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe translation hook for field widgets.
|
|
3
|
+
* Falls back to English defaults when no I18nProvider is available.
|
|
4
|
+
*/
|
|
5
|
+
import { createSafeTranslation } from '@object-ui/i18n';
|
|
6
|
+
|
|
7
|
+
const FIELD_DEFAULTS: Record<string, string> = {
|
|
8
|
+
'common.selectOption': 'Select an option',
|
|
9
|
+
'common.select': 'Select...',
|
|
10
|
+
'common.search': 'Search',
|
|
11
|
+
'table.selected': '{{count}} selected',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const useFieldTranslation = createSafeTranslation(
|
|
15
|
+
FIELD_DEFAULTS,
|
|
16
|
+
'common.selectOption',
|
|
17
|
+
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.AddressField=e.AddressField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.AutoNumberField=e.AutoNumberField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.AvatarField=e.AvatarField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.BooleanField=e.BooleanField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.CodeField=e.CodeField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.ColorField=e.ColorField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.CurrencyField=e.CurrencyField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.DateField=e.DateField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.DateTimeField=e.DateTimeField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.EmailField=e.EmailField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.FileField=e.FileField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.FormulaField=e.FormulaField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.GeolocationField=e.GeolocationField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.GridField=e.GridField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.ImageField=e.ImageField;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./jsx-runtime-DHCF5ANT.cjs`);const e=require(`./index.cjs`);exports.LocationField=e.LocationField;
|