@dxos/react-ui-form 0.8.2-main.2f9c567 → 0.8.2-main.30e4dbb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/lib/browser/index.mjs +672 -543
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +564 -442
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +672 -543
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/ControlSection/ControlSection.d.ts.map +1 -1
  11. package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
  12. package/dist/types/src/components/Form/ArrayField.d.ts.map +1 -1
  13. package/dist/types/src/components/Form/Defaults.d.ts.map +1 -1
  14. package/dist/types/src/components/Form/Form.d.ts +1 -2
  15. package/dist/types/src/components/Form/Form.d.ts.map +1 -1
  16. package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Form/FormActions.d.ts.map +1 -1
  18. package/dist/types/src/components/Form/FormContent.d.ts +1 -1
  19. package/dist/types/src/components/Form/FormContent.d.ts.map +1 -1
  20. package/dist/types/src/components/Form/FormContext.d.ts.map +1 -1
  21. package/dist/types/src/components/Form/Input.d.ts.map +1 -1
  22. package/dist/types/src/components/Form/RefField.d.ts +6 -18
  23. package/dist/types/src/components/Form/RefField.d.ts.map +1 -1
  24. package/dist/types/src/components/Form/custom/GeoPointInput.d.ts.map +1 -1
  25. package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts.map +1 -1
  26. package/dist/types/src/components/Form/custom/TupleInput.d.ts.map +1 -1
  27. package/dist/types/src/components/Form/factory.d.ts +1 -1
  28. package/dist/types/src/components/Form/factory.d.ts.map +1 -1
  29. package/dist/types/src/components/Form/index.d.ts +0 -1
  30. package/dist/types/src/components/Form/index.d.ts.map +1 -1
  31. package/dist/types/src/components/ViewEditor/Test.stories.d.ts.map +1 -1
  32. package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
  33. package/dist/types/src/components/deprecated/Form.d.ts.map +1 -1
  34. package/dist/types/src/components/deprecated/Form.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/deprecated/FormInput.d.ts.map +1 -1
  36. package/dist/types/src/components/testing.d.ts.map +1 -1
  37. package/dist/types/src/hooks/index.d.ts +1 -0
  38. package/dist/types/src/hooks/index.d.ts.map +1 -1
  39. package/dist/types/src/hooks/useForm.d.ts.map +1 -1
  40. package/dist/types/src/hooks/useQueryRefOptions.d.ts +23 -0
  41. package/dist/types/src/hooks/useQueryRefOptions.d.ts.map +1 -0
  42. package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts +1 -1
  43. package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts.map +1 -1
  44. package/dist/types/src/util/field.d.ts.map +1 -1
  45. package/dist/types/src/util/formatting.d.ts.map +1 -1
  46. package/dist/types/src/util/index.d.ts +2 -0
  47. package/dist/types/src/util/index.d.ts.map +1 -1
  48. package/dist/types/src/util/refs.d.ts +9 -0
  49. package/dist/types/src/util/refs.d.ts.map +1 -0
  50. package/dist/types/src/util/schema.d.ts +3 -0
  51. package/dist/types/src/util/schema.d.ts.map +1 -0
  52. package/dist/types/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +25 -24
  54. package/src/components/ControlSection/ControlSection.stories.tsx +1 -1
  55. package/src/components/FieldEditor/FieldEditor.stories.tsx +1 -1
  56. package/src/components/Form/ArrayField.tsx +2 -2
  57. package/src/components/Form/Form.stories.tsx +2 -1
  58. package/src/components/Form/Form.tsx +1 -2
  59. package/src/components/Form/FormContent.tsx +44 -16
  60. package/src/components/Form/FormContext.tsx +3 -1
  61. package/src/components/Form/Input.tsx +3 -9
  62. package/src/components/Form/RefField.tsx +144 -99
  63. package/src/components/Form/custom/SelectOptionsInput.stories.tsx +1 -1
  64. package/src/components/Form/factory.tsx +1 -1
  65. package/src/components/Form/index.ts +0 -1
  66. package/src/components/ViewEditor/ViewEditor.stories.tsx +1 -1
  67. package/src/hooks/index.ts +2 -1
  68. package/src/hooks/useQueryRefOptions.ts +53 -0
  69. package/src/hooks/useRefQueryLookupHandler.ts +2 -4
  70. package/src/util/index.ts +3 -1
  71. package/src/util/refs.ts +38 -0
  72. package/src/util/schema.ts +14 -0
@@ -8,11 +8,9 @@ import { getDXN, type TypeAnnotation } from '@dxos/echo-schema';
8
8
  import { Filter, type Space } from '@dxos/react-client/echo';
9
9
  import { isNonNullable } from '@dxos/util';
10
10
 
11
- import { type QueryRefOptions } from '../components';
11
+ import { type QueryRefOptions } from './useQueryRefOptions';
12
12
 
13
- type UseRefQueryLookupProps = {
14
- space?: Space;
15
- };
13
+ type UseRefQueryLookupProps = { space?: Space };
16
14
 
17
15
  export const useRefQueryLookupHandler = ({ space }: UseRefQueryLookupProps): QueryRefOptions => {
18
16
  const handleRefQueryLookup = useCallback(
package/src/util/index.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  //
2
- // Copyright 2024 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
5
  export * from './field';
6
6
  export * from './formatting';
7
+ export * from './refs';
8
+ export * from './schema';
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type SchemaAST } from 'effect';
6
+
7
+ import { FormatEnum, ReferenceAnnotationId } from '@dxos/echo-schema';
8
+ import { findAnnotation } from '@dxos/effect';
9
+ import { type SchemaProperty } from '@dxos/schema';
10
+
11
+ import { findArrayElementType } from './schema';
12
+
13
+ type RefProps = {
14
+ ast: SchemaAST.AST;
15
+ isArray: boolean;
16
+ };
17
+
18
+ export const getRefProps = (property: SchemaProperty<any>): RefProps | undefined => {
19
+ const { ast, format, array } = property;
20
+
21
+ // Direct reference.
22
+ if (format === FormatEnum.Ref) {
23
+ return { ast, isArray: false };
24
+ }
25
+
26
+ // Array of references.
27
+ if (array) {
28
+ const elementType = findArrayElementType(ast);
29
+ if (elementType) {
30
+ const annotation = findAnnotation(elementType, ReferenceAnnotationId);
31
+ if (annotation) {
32
+ return { ast: elementType, isArray: true };
33
+ }
34
+ }
35
+ }
36
+
37
+ return undefined;
38
+ };
@@ -0,0 +1,14 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { SchemaAST } from 'effect';
6
+
7
+ import { findNode } from '@dxos/effect';
8
+
9
+ export const findArrayElementType = (ast: SchemaAST.AST) => {
10
+ const tupleType = findNode(ast, SchemaAST.isTupleType);
11
+ const elementType = (tupleType as SchemaAST.TupleType | undefined)?.rest[0]?.type;
12
+
13
+ return elementType;
14
+ };