@object-ui/fields 4.0.1 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/index.cjs +3 -3
- package/dist/index.js +574 -574
- package/package.json +7 -7
- package/dist/dist-BoLAKgtw.cjs +0 -1
- package/dist/dist-qtNk7SzD.js +0 -32
- package/dist/packages/fields/src/__tests__/boolean-checkbox.test.d.ts +0 -0
- package/dist/packages/fields/src/__tests__/cell-renderers.test.d.ts +0 -0
- package/dist/packages/fields/src/__tests__/datetime-cell.test.d.ts +0 -0
- package/dist/packages/fields/src/__tests__/datetime-timezone.test.d.ts +0 -0
- package/dist/packages/fields/src/__tests__/extreme-inputs.test.d.ts +0 -0
- package/dist/packages/fields/src/__tests__/form-variants.test.d.ts +0 -0
- package/dist/packages/fields/src/lookup-depends-on.test.d.ts +0 -1
- package/dist/packages/fields/src/new-widgets.test.d.ts +0 -8
- package/dist/packages/fields/src/record-picker.test.d.ts +0 -1
- package/dist/packages/fields/src/remaining-widgets.test.d.ts +0 -1
- package/dist/packages/fields/src/text-rich-widgets.test.d.ts +0 -1
- package/dist/packages/fields/src/visual-widgets.test.d.ts +0 -1
- package/src/__tests__/boolean-checkbox.test.tsx +0 -74
- package/src/__tests__/cell-renderers.test.tsx +0 -1193
- package/src/__tests__/datetime-cell.test.tsx +0 -46
- package/src/__tests__/datetime-timezone.test.tsx +0 -770
- package/src/__tests__/extreme-inputs.test.tsx +0 -567
- package/src/__tests__/form-variants.test.tsx +0 -306
- package/src/lookup-depends-on.test.tsx +0 -130
- package/src/new-widgets.test.tsx +0 -302
- package/src/record-picker.test.tsx +0 -1703
- package/src/remaining-widgets.test.tsx +0 -211
- package/src/text-rich-widgets.test.tsx +0 -104
- package/src/visual-widgets.test.tsx +0 -97
- /package/dist/{ImageCropperDialog-DXLQcwWZ.cjs → ImageCropperDialog-CK1apFXU.cjs} +0 -0
- /package/dist/{ImageCropperDialog-BYRMqcYm.js → ImageCropperDialog-DNvktnyM.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/fields",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"description": "Field renderers and registry for Object UI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"clsx": "^2.1.1",
|
|
28
28
|
"lucide-react": "^1.14.0",
|
|
29
29
|
"tailwind-merge": "^3.5.0",
|
|
30
|
-
"@object-ui/components": "4.0.
|
|
31
|
-
"@object-ui/core": "4.0.
|
|
32
|
-
"@object-ui/i18n": "4.0.
|
|
33
|
-
"@object-ui/providers": "4.0.
|
|
34
|
-
"@object-ui/react": "4.0.
|
|
35
|
-
"@object-ui/types": "4.0.
|
|
30
|
+
"@object-ui/components": "4.0.4",
|
|
31
|
+
"@object-ui/core": "4.0.4",
|
|
32
|
+
"@object-ui/i18n": "4.0.4",
|
|
33
|
+
"@object-ui/providers": "4.0.4",
|
|
34
|
+
"@object-ui/react": "4.0.4",
|
|
35
|
+
"@object-ui/types": "4.0.4"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "^18.0.0 || ^19.0.0",
|
package/dist/dist-BoLAKgtw.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./chunk-D-qHiVGv.cjs`);let e=require(`react`);require(`react/jsx-runtime`),(0,e.createContext)(null),(0,e.createContext)(null),(0,e.createContext)(null);var t=(0,e.createContext)(null);function n(){return{name:`object-url`,async upload(e){let t=e,n=`name`in t&&t.name||`upload`;return{url:URL.createObjectURL(e),name:n,size:e.size,mimeType:e.type||`application/octet-stream`}}}}function r(){let r=(0,e.useContext)(t),i=(0,e.useMemo)(()=>{let e=n();return{upload:(t,n)=>e.upload(t,n),adapter:e}},[]);return r??i}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
package/dist/dist-qtNk7SzD.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { createContext as e, useContext as t, useMemo as n } from "react";
|
|
2
|
-
import "react/jsx-runtime";
|
|
3
|
-
e(null), e(null), e(null);
|
|
4
|
-
//#endregion
|
|
5
|
-
//#region ../providers/dist/UploadProvider.js
|
|
6
|
-
var r = e(null);
|
|
7
|
-
function i() {
|
|
8
|
-
return {
|
|
9
|
-
name: "object-url",
|
|
10
|
-
async upload(e) {
|
|
11
|
-
let t = e, n = "name" in t && t.name || "upload";
|
|
12
|
-
return {
|
|
13
|
-
url: URL.createObjectURL(e),
|
|
14
|
-
name: n,
|
|
15
|
-
size: e.size,
|
|
16
|
-
mimeType: e.type || "application/octet-stream"
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function a() {
|
|
22
|
-
let e = t(r), a = n(() => {
|
|
23
|
-
let e = i();
|
|
24
|
-
return {
|
|
25
|
-
upload: (t, n) => e.upload(t, n),
|
|
26
|
-
adapter: e
|
|
27
|
-
};
|
|
28
|
-
}, []);
|
|
29
|
-
return e ?? a;
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
export { a as t };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BooleanCellRenderer Checkbox Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests for the Airtable-style checkbox boolean cell renderer.
|
|
5
|
-
*/
|
|
6
|
-
import { describe, it, expect } from 'vitest';
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { render, screen } from '@testing-library/react';
|
|
9
|
-
import '@testing-library/jest-dom';
|
|
10
|
-
import { BooleanCellRenderer } from '../index';
|
|
11
|
-
|
|
12
|
-
describe('BooleanCellRenderer', () => {
|
|
13
|
-
it('should render a checked checkbox for true values', () => {
|
|
14
|
-
render(
|
|
15
|
-
<BooleanCellRenderer
|
|
16
|
-
value={true}
|
|
17
|
-
field={{ name: 'active', type: 'boolean' } as any}
|
|
18
|
-
/>
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
const checkbox = screen.getByRole('checkbox');
|
|
22
|
-
expect(checkbox).toBeInTheDocument();
|
|
23
|
-
expect(checkbox).toHaveAttribute('data-state', 'checked');
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('should render an unchecked checkbox for false values (non-status field)', () => {
|
|
27
|
-
render(
|
|
28
|
-
<BooleanCellRenderer
|
|
29
|
-
value={false}
|
|
30
|
-
field={{ name: 'flagged', type: 'boolean' } as any}
|
|
31
|
-
/>
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
const checkbox = screen.getByRole('checkbox');
|
|
35
|
-
expect(checkbox).toBeInTheDocument();
|
|
36
|
-
expect(checkbox).toHaveAttribute('data-state', 'unchecked');
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it('should render warning badge for active=false', () => {
|
|
40
|
-
const { container } = render(
|
|
41
|
-
<BooleanCellRenderer
|
|
42
|
-
value={false}
|
|
43
|
-
field={{ name: 'active', type: 'boolean', label: 'Active' } as any}
|
|
44
|
-
/>
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
const badge = container.querySelector('[data-testid="boolean-warning-badge"]');
|
|
48
|
-
expect(badge).toBeInTheDocument();
|
|
49
|
-
expect(badge?.textContent).toContain('Off');
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('should render dash for null/undefined values', () => {
|
|
53
|
-
render(
|
|
54
|
-
<BooleanCellRenderer
|
|
55
|
-
value={null}
|
|
56
|
-
field={{ name: 'active', type: 'boolean' } as any}
|
|
57
|
-
/>
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
expect(screen.getByText('—')).toBeInTheDocument();
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
it('should render checkbox as disabled (non-interactive)', () => {
|
|
64
|
-
render(
|
|
65
|
-
<BooleanCellRenderer
|
|
66
|
-
value={true}
|
|
67
|
-
field={{ name: 'active', type: 'boolean' } as any}
|
|
68
|
-
/>
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
const checkbox = screen.getByRole('checkbox');
|
|
72
|
-
expect(checkbox).toBeDisabled();
|
|
73
|
-
});
|
|
74
|
-
});
|