@dxos/react-ui-form 0.8.4-main.f5c0578 → 0.8.4-main.fcc0d83b33

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 (246) hide show
  1. package/README.md +0 -1
  2. package/dist/lib/browser/index.mjs +2774 -2137
  3. package/dist/lib/browser/index.mjs.map +4 -4
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/translations.mjs +82 -0
  6. package/dist/lib/browser/translations.mjs.map +7 -0
  7. package/dist/lib/node-esm/index.mjs +2774 -2137
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/lib/node-esm/translations.mjs +84 -0
  11. package/dist/lib/node-esm/translations.mjs.map +7 -0
  12. package/dist/types/src/components/FieldEditor/FieldEditor.d.ts +8 -8
  13. package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
  14. package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts +84 -5
  15. package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/Form/Form.d.ts +109 -25
  17. package/dist/types/src/components/Form/Form.d.ts.map +1 -1
  18. package/dist/types/src/components/Form/Form.stories.d.ts +130 -56
  19. package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
  20. package/dist/types/src/components/Form/FormField.d.ts +43 -0
  21. package/dist/types/src/components/Form/FormField.d.ts.map +1 -0
  22. package/dist/types/src/components/Form/FormFieldComponent.d.ts +79 -0
  23. package/dist/types/src/components/Form/FormFieldComponent.d.ts.map +1 -0
  24. package/dist/types/src/components/Form/FormFieldComponent.stories.d.ts +9 -0
  25. package/dist/types/src/components/Form/FormFieldComponent.stories.d.ts.map +1 -0
  26. package/dist/types/src/components/Form/FormFieldSet.d.ts +15 -0
  27. package/dist/types/src/components/Form/FormFieldSet.d.ts.map +1 -0
  28. package/dist/types/src/components/Form/fields/ArrayField.d.ts +18 -0
  29. package/dist/types/src/components/Form/fields/ArrayField.d.ts.map +1 -0
  30. package/dist/types/src/components/Form/fields/BooleanField.d.ts +4 -0
  31. package/dist/types/src/components/Form/fields/BooleanField.d.ts.map +1 -0
  32. package/dist/types/src/components/Form/fields/GeoPointField.d.ts +5 -0
  33. package/dist/types/src/components/Form/fields/GeoPointField.d.ts.map +1 -0
  34. package/dist/types/src/components/Form/fields/MarkdownField.d.ts +11 -0
  35. package/dist/types/src/components/Form/fields/MarkdownField.d.ts.map +1 -0
  36. package/dist/types/src/components/Form/fields/MarkdownField.stories.d.ts +83 -0
  37. package/dist/types/src/components/Form/fields/MarkdownField.stories.d.ts.map +1 -0
  38. package/dist/types/src/components/Form/fields/NumberField.d.ts +4 -0
  39. package/dist/types/src/components/Form/fields/NumberField.d.ts.map +1 -0
  40. package/dist/types/src/components/Form/fields/RefField.d.ts +22 -0
  41. package/dist/types/src/components/Form/fields/RefField.d.ts.map +1 -0
  42. package/dist/types/src/components/Form/fields/SelectField.d.ts +10 -0
  43. package/dist/types/src/components/Form/fields/SelectField.d.ts.map +1 -0
  44. package/dist/types/src/components/Form/fields/SelectOptionField.d.ts +5 -0
  45. package/dist/types/src/components/Form/fields/SelectOptionField.d.ts.map +1 -0
  46. package/dist/types/src/components/Form/fields/SelectOptionField.stories.d.ts +84 -0
  47. package/dist/types/src/components/Form/fields/SelectOptionField.stories.d.ts.map +1 -0
  48. package/dist/types/src/components/Form/fields/TextAreaField.d.ts +4 -0
  49. package/dist/types/src/components/Form/fields/TextAreaField.d.ts.map +1 -0
  50. package/dist/types/src/components/Form/fields/TextField.d.ts +4 -0
  51. package/dist/types/src/components/Form/fields/TextField.d.ts.map +1 -0
  52. package/dist/types/src/components/Form/fields/TupleField.d.ts +6 -0
  53. package/dist/types/src/components/Form/fields/TupleField.d.ts.map +1 -0
  54. package/dist/types/src/components/Form/fields/index.d.ts +12 -0
  55. package/dist/types/src/components/Form/fields/index.d.ts.map +1 -0
  56. package/dist/types/src/components/Form/index.d.ts +2 -4
  57. package/dist/types/src/components/Form/index.d.ts.map +1 -1
  58. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts +9 -0
  59. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
  60. package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
  61. package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
  62. package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts +68 -0
  63. package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts.map +1 -0
  64. package/dist/types/src/components/ObjectPicker/ObjectPicker.stories.d.ts +87 -0
  65. package/dist/types/src/components/ObjectPicker/ObjectPicker.stories.d.ts.map +1 -0
  66. package/dist/types/src/components/ObjectPicker/index.d.ts +2 -0
  67. package/dist/types/src/components/ObjectPicker/index.d.ts.map +1 -0
  68. package/dist/types/src/components/ObjectProperties/ObjectProperties.d.ts +9 -0
  69. package/dist/types/src/components/ObjectProperties/ObjectProperties.d.ts.map +1 -0
  70. package/dist/types/src/components/ObjectProperties/ObjectProperties.stories.d.ts +127 -0
  71. package/dist/types/src/components/ObjectProperties/ObjectProperties.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/ObjectProperties/ObjectProperties.test.d.ts +2 -0
  73. package/dist/types/src/components/ObjectProperties/ObjectProperties.test.d.ts.map +1 -0
  74. package/dist/types/src/components/ObjectProperties/index.d.ts +2 -0
  75. package/dist/types/src/components/ObjectProperties/index.d.ts.map +1 -0
  76. package/dist/types/src/components/Settings/Settings.d.ts +51 -0
  77. package/dist/types/src/components/Settings/Settings.d.ts.map +1 -0
  78. package/dist/types/src/components/Settings/Settings.stories.d.ts +84 -0
  79. package/dist/types/src/components/Settings/Settings.stories.d.ts.map +1 -0
  80. package/dist/types/src/components/Settings/SettingsFieldSet.d.ts +43 -0
  81. package/dist/types/src/components/Settings/SettingsFieldSet.d.ts.map +1 -0
  82. package/dist/types/src/components/Settings/SettingsItem.d.ts +16 -0
  83. package/dist/types/src/components/Settings/SettingsItem.d.ts.map +1 -0
  84. package/dist/types/src/components/Settings/SettingsSelectField.d.ts +18 -0
  85. package/dist/types/src/components/Settings/SettingsSelectField.d.ts.map +1 -0
  86. package/dist/types/src/components/Settings/index.d.ts +4 -0
  87. package/dist/types/src/components/Settings/index.d.ts.map +1 -0
  88. package/dist/types/src/components/ViewEditor/ViewEditor.d.ts +22 -10
  89. package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
  90. package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts +86 -8
  91. package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/index.d.ts +4 -2
  93. package/dist/types/src/components/index.d.ts.map +1 -1
  94. package/dist/types/src/components/testing.d.ts +5 -4
  95. package/dist/types/src/components/testing.d.ts.map +1 -1
  96. package/dist/types/src/hooks/index.d.ts +2 -3
  97. package/dist/types/src/hooks/index.d.ts.map +1 -1
  98. package/dist/types/src/hooks/useFormHandler.d.ts +82 -0
  99. package/dist/types/src/hooks/useFormHandler.d.ts.map +1 -0
  100. package/dist/types/src/hooks/useKeyHandler.d.ts +7 -0
  101. package/dist/types/src/hooks/useKeyHandler.d.ts.map +1 -0
  102. package/dist/types/src/index.d.ts +0 -2
  103. package/dist/types/src/index.d.ts.map +1 -1
  104. package/dist/types/src/translations.d.ts +65 -55
  105. package/dist/types/src/translations.d.ts.map +1 -1
  106. package/dist/types/src/util/field-type.d.ts +19 -0
  107. package/dist/types/src/util/field-type.d.ts.map +1 -0
  108. package/dist/types/src/util/field.d.ts +3 -3
  109. package/dist/types/src/util/field.d.ts.map +1 -1
  110. package/dist/types/src/util/formatting.d.ts +2 -2
  111. package/dist/types/src/util/formatting.d.ts.map +1 -1
  112. package/dist/types/src/util/index.d.ts +2 -1
  113. package/dist/types/src/util/index.d.ts.map +1 -1
  114. package/dist/types/src/util/properties.d.ts +7 -0
  115. package/dist/types/src/util/properties.d.ts.map +1 -0
  116. package/dist/types/src/util/refs.d.ts +3 -3
  117. package/dist/types/src/util/refs.d.ts.map +1 -1
  118. package/dist/types/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +56 -46
  120. package/src/components/FieldEditor/FieldEditor.stories.tsx +49 -31
  121. package/src/components/FieldEditor/FieldEditor.test.tsx +0 -1
  122. package/src/components/FieldEditor/FieldEditor.tsx +86 -91
  123. package/src/components/Form/AUDIT.md +17 -0
  124. package/src/components/Form/Form.stories.tsx +147 -224
  125. package/src/components/Form/Form.tsx +376 -96
  126. package/src/components/Form/FormField.tsx +306 -0
  127. package/src/components/Form/FormFieldComponent.stories.tsx +65 -0
  128. package/src/components/Form/FormFieldComponent.tsx +174 -0
  129. package/src/components/Form/FormFieldSet.tsx +144 -0
  130. package/src/components/Form/README.md +3 -0
  131. package/src/components/Form/fields/ArrayField.tsx +159 -0
  132. package/src/components/Form/fields/BooleanField.tsx +22 -0
  133. package/src/components/Form/fields/GeoPointField.tsx +121 -0
  134. package/src/components/Form/fields/MarkdownField.stories.tsx +152 -0
  135. package/src/components/Form/fields/MarkdownField.tsx +168 -0
  136. package/src/components/Form/fields/NumberField.tsx +39 -0
  137. package/src/components/Form/fields/RefField.tsx +229 -0
  138. package/src/components/Form/fields/SelectField.tsx +65 -0
  139. package/src/components/Form/fields/SelectOptionField.stories.tsx +66 -0
  140. package/src/components/Form/{custom/SelectOptionsInput.tsx → fields/SelectOptionField.tsx} +37 -31
  141. package/src/components/Form/fields/TextAreaField.tsx +38 -0
  142. package/src/components/Form/fields/TextField.tsx +38 -0
  143. package/src/components/Form/{custom/TupleInput.tsx → fields/TupleField.tsx} +17 -10
  144. package/src/components/Form/fields/index.ts +15 -0
  145. package/src/components/Form/index.ts +3 -4
  146. package/src/components/ObjectForm/ObjectForm.tsx +114 -0
  147. package/src/components/{ControlSection → ObjectForm}/index.ts +1 -1
  148. package/src/components/ObjectPicker/ObjectPicker.stories.tsx +212 -0
  149. package/src/components/ObjectPicker/ObjectPicker.tsx +194 -0
  150. package/src/components/ObjectPicker/index.ts +5 -0
  151. package/src/components/ObjectProperties/ObjectProperties.stories.tsx +362 -0
  152. package/src/components/ObjectProperties/ObjectProperties.test.tsx +101 -0
  153. package/src/components/ObjectProperties/ObjectProperties.tsx +141 -0
  154. package/src/components/ObjectProperties/index.ts +5 -0
  155. package/src/components/Settings/AUDIT.md +52 -0
  156. package/src/components/Settings/Settings.stories.tsx +104 -0
  157. package/src/components/Settings/Settings.tsx +82 -0
  158. package/src/components/Settings/SettingsFieldSet.tsx +257 -0
  159. package/src/components/Settings/SettingsItem.tsx +62 -0
  160. package/src/components/Settings/SettingsSelectField.tsx +59 -0
  161. package/src/components/Settings/index.ts +7 -0
  162. package/src/components/ViewEditor/ViewEditor.stories.tsx +140 -63
  163. package/src/components/ViewEditor/ViewEditor.test.tsx +12 -15
  164. package/src/components/ViewEditor/ViewEditor.tsx +348 -212
  165. package/src/components/index.ts +4 -3
  166. package/src/components/testing.tsx +31 -12
  167. package/src/hooks/index.ts +2 -3
  168. package/src/hooks/useFormHandler.ts +380 -0
  169. package/src/hooks/useKeyHandler.tsx +37 -0
  170. package/src/index.ts +0 -4
  171. package/src/translations.ts +70 -59
  172. package/src/util/field-type.ts +60 -0
  173. package/src/util/field.ts +33 -43
  174. package/src/util/formatting.ts +22 -22
  175. package/src/util/index.ts +2 -1
  176. package/src/util/properties.ts +18 -0
  177. package/src/util/refs.ts +17 -19
  178. package/dist/types/src/components/ControlSection/ControlSection.d.ts +0 -23
  179. package/dist/types/src/components/ControlSection/ControlSection.d.ts.map +0 -1
  180. package/dist/types/src/components/ControlSection/ControlSection.stories.d.ts +0 -8
  181. package/dist/types/src/components/ControlSection/ControlSection.stories.d.ts.map +0 -1
  182. package/dist/types/src/components/ControlSection/index.d.ts +0 -2
  183. package/dist/types/src/components/ControlSection/index.d.ts.map +0 -1
  184. package/dist/types/src/components/Form/ArrayField.d.ts +0 -16
  185. package/dist/types/src/components/Form/ArrayField.d.ts.map +0 -1
  186. package/dist/types/src/components/Form/Defaults.d.ts +0 -14
  187. package/dist/types/src/components/Form/Defaults.d.ts.map +0 -1
  188. package/dist/types/src/components/Form/FormActions.d.ts +0 -9
  189. package/dist/types/src/components/Form/FormActions.d.ts.map +0 -1
  190. package/dist/types/src/components/Form/FormContent.d.ts +0 -57
  191. package/dist/types/src/components/Form/FormContent.d.ts.map +0 -1
  192. package/dist/types/src/components/Form/FormContext.d.ts +0 -23
  193. package/dist/types/src/components/Form/FormContext.d.ts.map +0 -1
  194. package/dist/types/src/components/Form/Input.d.ts +0 -26
  195. package/dist/types/src/components/Form/Input.d.ts.map +0 -1
  196. package/dist/types/src/components/Form/RefField.d.ts +0 -12
  197. package/dist/types/src/components/Form/RefField.d.ts.map +0 -1
  198. package/dist/types/src/components/Form/custom/GeoPointInput.d.ts +0 -4
  199. package/dist/types/src/components/Form/custom/GeoPointInput.d.ts.map +0 -1
  200. package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts +0 -4
  201. package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts.map +0 -1
  202. package/dist/types/src/components/Form/custom/SelectOptionsInput.stories.d.ts +0 -7
  203. package/dist/types/src/components/Form/custom/SelectOptionsInput.stories.d.ts.map +0 -1
  204. package/dist/types/src/components/Form/custom/TupleInput.d.ts +0 -6
  205. package/dist/types/src/components/Form/custom/TupleInput.d.ts.map +0 -1
  206. package/dist/types/src/components/Form/custom/index.d.ts +0 -4
  207. package/dist/types/src/components/Form/custom/index.d.ts.map +0 -1
  208. package/dist/types/src/components/Form/factory.d.ts +0 -8
  209. package/dist/types/src/components/Form/factory.d.ts.map +0 -1
  210. package/dist/types/src/components/deprecated/Form.d.ts +0 -15
  211. package/dist/types/src/components/deprecated/Form.d.ts.map +0 -1
  212. package/dist/types/src/components/deprecated/Form.stories.d.ts +0 -13
  213. package/dist/types/src/components/deprecated/Form.stories.d.ts.map +0 -1
  214. package/dist/types/src/components/deprecated/FormInput.d.ts +0 -16
  215. package/dist/types/src/components/deprecated/FormInput.d.ts.map +0 -1
  216. package/dist/types/src/components/deprecated/index.d.ts +0 -2
  217. package/dist/types/src/components/deprecated/index.d.ts.map +0 -1
  218. package/dist/types/src/hooks/useForm.d.ts +0 -67
  219. package/dist/types/src/hooks/useForm.d.ts.map +0 -1
  220. package/dist/types/src/hooks/useQueryRefOptions.d.ts +0 -23
  221. package/dist/types/src/hooks/useQueryRefOptions.d.ts.map +0 -1
  222. package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts +0 -8
  223. package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts.map +0 -1
  224. package/dist/types/src/util/schema.d.ts +0 -3
  225. package/dist/types/src/util/schema.d.ts.map +0 -1
  226. package/src/components/ControlSection/ControlSection.stories.tsx +0 -42
  227. package/src/components/ControlSection/ControlSection.tsx +0 -139
  228. package/src/components/Form/ArrayField.tsx +0 -125
  229. package/src/components/Form/Defaults.tsx +0 -204
  230. package/src/components/Form/FormActions.tsx +0 -54
  231. package/src/components/Form/FormContent.tsx +0 -241
  232. package/src/components/Form/FormContext.tsx +0 -110
  233. package/src/components/Form/Input.tsx +0 -51
  234. package/src/components/Form/RefField.tsx +0 -214
  235. package/src/components/Form/custom/GeoPointInput.tsx +0 -72
  236. package/src/components/Form/custom/SelectOptionsInput.stories.tsx +0 -62
  237. package/src/components/Form/custom/index.ts +0 -7
  238. package/src/components/Form/factory.tsx +0 -31
  239. package/src/components/deprecated/Form.stories.tsx +0 -63
  240. package/src/components/deprecated/Form.tsx +0 -119
  241. package/src/components/deprecated/FormInput.tsx +0 -71
  242. package/src/components/deprecated/index.ts +0 -5
  243. package/src/hooks/useForm.ts +0 -293
  244. package/src/hooks/useQueryRefOptions.ts +0 -53
  245. package/src/hooks/useRefQueryLookupHandler.ts +0 -39
  246. package/src/util/schema.ts +0 -14
@@ -1,27 +1,111 @@
1
- import { type Schema } from 'effect';
2
- import React, { type ReactElement } from 'react';
3
- import { type BaseObject, type PropertyKey } from '@dxos/echo-schema';
4
- import { type ThemedClassName } from '@dxos/react-ui';
5
- import { type SchemaProperty } from '@dxos/schema';
6
- import { type FormOptions } from '../../hooks';
7
- import { type FormOuterSpacing } from './FormActions';
8
- import { type FormFieldsProps } from './FormContent';
9
- import { type InputComponent, type InputProps } from './Input';
10
- export type PropsFilter<T extends BaseObject> = (props: SchemaProperty<T>[]) => SchemaProperty<T>[];
11
- export type ComponentLookup = (args: {
12
- prop: string;
13
- schema: Schema.Schema<any>;
14
- inputProps: InputProps;
15
- }) => ReactElement | undefined;
16
- export type CustomInputMap = Partial<Record<string, InputComponent>>;
17
- export type FormProps<T extends BaseObject> = ThemedClassName<{
18
- values: Partial<T>;
19
- autoFocus?: boolean;
20
- filter?: PropsFilter<T>;
21
- sort?: PropertyKey<T>[];
22
- autoSave?: boolean;
23
- outerSpacing?: FormOuterSpacing;
1
+ import * as Schema from 'effect/Schema';
2
+ import React, { type PropsWithChildren } from 'react';
3
+ import { type AnyProperties } from '@dxos/echo/internal';
4
+ import { type IconButtonProps, type ThemedClassName } from '@dxos/react-ui';
5
+ import { type FormHandler, type FormHandlerProps, type FormUpdateMeta } from '../../hooks';
6
+ import { type FormFieldLabelProps, type FormFieldStateProps } from './FormFieldComponent';
7
+ import { type FormFieldSetProps as NaturalFormFieldSetProps } from './FormFieldSet';
8
+ export type ExcludeId<S extends Schema.Schema.AnyNoContext> = Omit<Schema.Schema.Type<S>, 'id'>;
9
+ export declare const omitId: <S extends Schema.Schema.AnyNoContext>(schema: S) => Schema.Schema<ExcludeId<S>, ExcludeId<S>>;
10
+ /**
11
+ * Drop fields annotated with `FormInputAnnotation.set(false)` from a schema so
12
+ * the form's validator doesn't trip on required-but-hidden fields. Used by
13
+ * the picker's inline create form, where a `FactoryAnnotation` typically
14
+ * supplies the hidden values (e.g. a backing-object Ref) outside the form.
15
+ */
16
+ export declare const omitHiddenFormFields: <S extends Schema.Schema.AnyNoContext>(schema: S) => S;
17
+ type FormContextValue<T extends AnyProperties = any> = {
18
+ /**
19
+ * Form handler.
20
+ */
21
+ form: FormHandler<T>;
22
+ /**
23
+ * Show debug info.
24
+ */
25
+ debug?: boolean;
26
+ /**
27
+ * Testing.
28
+ */
29
+ testId?: string;
30
+ } & Pick<NaturalFormFieldSetProps<T>, 'readonly' | 'layout' | 'fieldMap' | 'fieldProvider' | 'projection' | 'createTypename' | 'createFieldMap' | 'db'>;
31
+ declare const useFormContext: (consumerName: string) => FormContextValue<any>;
32
+ /**
33
+ * Get the current form values.
34
+ */
35
+ declare const useFormValues: {
36
+ <T extends AnyProperties>(componentName: string, path?: (string | number)[]): T;
37
+ <T extends AnyProperties>(componentName: string, path: (string | number)[] | undefined, defaultValue: () => T): T | undefined;
38
+ };
39
+ /**
40
+ * Get the state props for the given field.
41
+ */
42
+ declare const useFormFieldState: (componentName: string, path?: (string | number)[]) => FormFieldStateProps;
43
+ type FormRootProps<T extends AnyProperties = AnyProperties> = PropsWithChildren<{
44
+ /**
45
+ * Called when the form is submitted and passes validation.
46
+ */
47
+ onSave?: (values: T, meta: FormUpdateMeta<T>) => void;
48
+ /**
49
+ * Called when the form is canceled to abandon/undo any pending changes.
50
+ */
24
51
  onCancel?: () => void;
25
- }> & Pick<FormOptions<T>, 'schema' | 'onValuesChanged' | 'onValidate' | 'onSave'> & FormFieldsProps;
26
- export declare const Form: <T extends BaseObject>({ classNames, testId, values: initialValues, autoFocus, readonly, autoSave, outerSpacing, onCancel, schema, onValuesChanged, onValidate, onSave, ...props }: FormProps<T>) => React.JSX.Element;
52
+ } & Omit<FormContextValue<T>, 'form'> & Pick<FormHandlerProps<T>, 'schema' | 'autoSave' | 'values' | 'defaultValues' | 'onValidate' | 'onValuesChanged'> & Omit<NaturalFormFieldSetProps<T>, 'schema' | 'path'>>;
53
+ declare function FormRoot<T extends AnyProperties = AnyProperties>({ children, schema, values, onSave, onCancel, ...props }: FormRootProps<T>): React.JSX.Element;
54
+ declare namespace FormRoot {
55
+ var displayName: string;
56
+ }
57
+ type FormViewportProps = {};
58
+ type FormContentProps = ThemedClassName<PropsWithChildren<{}>>;
59
+ type FormFieldSetProps = ThemedClassName<NaturalFormFieldSetProps<any>>;
60
+ declare function FormFieldSet(props: FormFieldSetProps): React.JSX.Element;
61
+ declare namespace FormFieldSet {
62
+ var displayName: string;
63
+ }
64
+ type FormActionsProps = ThemedClassName<{}>;
65
+ declare function FormActions({ classNames }: FormActionsProps): React.JSX.Element | null;
66
+ declare namespace FormActions {
67
+ var displayName: string;
68
+ }
69
+ type FormSectionProps = ThemedClassName<{
70
+ label: string;
71
+ description?: string;
72
+ }>;
73
+ type FormSubmitProps = ThemedClassName<Partial<Pick<IconButtonProps, 'icon' | 'label' | 'disabled'>>>;
74
+ declare function FormSubmit({ classNames, label, icon, disabled }: FormSubmitProps): React.JSX.Element | null;
75
+ declare namespace FormSubmit {
76
+ var displayName: string;
77
+ }
78
+ export declare const Form: {
79
+ Root: {
80
+ <T extends AnyProperties = AnyProperties>({ children, schema, values, onSave, onCancel, ...props }: FormRootProps<T>): React.JSX.Element;
81
+ displayName: string;
82
+ };
83
+ Viewport: React.ForwardRefExoticComponent<Omit<{}, "className"> & {
84
+ classNames?: import("@dxos/ui-types").ClassNameValue;
85
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
86
+ Content: React.ForwardRefExoticComponent<Omit<FormContentProps, "className"> & {
87
+ classNames?: import("@dxos/ui-types").ClassNameValue;
88
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
89
+ Section: React.ForwardRefExoticComponent<Omit<FormSectionProps, "className"> & {
90
+ classNames?: import("@dxos/ui-types").ClassNameValue;
91
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
92
+ FieldSet: {
93
+ (props: FormFieldSetProps): React.JSX.Element;
94
+ displayName: string;
95
+ };
96
+ Label: {
97
+ ({ label, error, readonly, asChild }: FormFieldLabelProps): React.JSX.Element;
98
+ displayName: string;
99
+ };
100
+ Actions: {
101
+ ({ classNames }: FormActionsProps): React.JSX.Element | null;
102
+ displayName: string;
103
+ };
104
+ Submit: {
105
+ ({ classNames, label, icon, disabled }: FormSubmitProps): React.JSX.Element | null;
106
+ displayName: string;
107
+ };
108
+ };
109
+ export { useFormContext, useFormValues, useFormFieldState };
110
+ export type { FormRootProps, FormViewportProps, FormContentProps, FormSectionProps, FormFieldSetProps, FormFieldLabelProps, FormActionsProps, FormSubmitProps, };
27
111
  //# sourceMappingURL=Form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/Form.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAA8B,MAAM,OAAO,CAAC;AAE7E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpG,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACxB,KAAK,YAAY,GAAG,SAAS,CAAC;AAE/B,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,eAAe,CAAC;IAC5D,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC,GACA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC,GAC5E,eAAe,CAAC;AAElB,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,UAAU,EAAE,6JAcxC,SAAS,CAAC,CAAC,CAAC,sBAmDd,CAAC"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/Form.tsx"],"names":[],"mappings":"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"}
@@ -1,58 +1,132 @@
1
- import '@dxos-theme';
2
- import { type Meta, type StoryObj } from '@storybook/react-vite';
3
- import { Schema } from 'effect';
4
- import { ContactType } from '@dxos/client/testing';
5
- import { type BaseObject } from '@dxos/echo-schema';
6
- import { Testing } from '@dxos/schema/testing';
7
- import { type FormProps } from './Form';
8
- declare const TestSchema: Schema.mutable<Schema.Struct<{
9
- name: Schema.optional<Schema.SchemaClass<string, string, never>>;
10
- active: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
11
- rank: Schema.optional<Schema.SchemaClass<number, number, never>>;
12
- website: Schema.optional<Schema.refine<string, typeof Schema.String>>;
13
- address: Schema.optional<Schema.Struct<{
14
- street: Schema.optional<Schema.SchemaClass<string, string, never>>;
15
- city: Schema.optional<Schema.SchemaClass<string, string, never>>;
16
- zip: Schema.optional<Schema.refine<string, typeof Schema.String>>;
17
- location: Schema.optional<Schema.Tuple<[Schema.refine<number, Schema.transform<typeof Schema.Number, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.refine<number, Schema.transform<typeof Schema.Number, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.Element<typeof Schema.Number, "?">]>>;
18
- }>>;
19
- }>>;
20
- type TestType = Schema.Schema.Type<typeof TestSchema>;
21
- type StoryProps<T extends BaseObject> = {
22
- schema: Schema.Schema<T>;
23
- } & FormProps<T>;
24
- declare const meta: Meta<StoryProps<any>>;
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ import * as Schema from 'effect/Schema';
3
+ import React from 'react';
4
+ import { Type } from '@dxos/echo';
5
+ import { type AnyProperties } from '@dxos/echo/internal';
6
+ import { type ExcludeId, type FormRootProps } from './Form';
7
+ declare const Organization: Type.Obj<{
8
+ readonly name: string;
9
+ }, Schema.Struct.Fields>;
10
+ export interface Organization extends Schema.Schema.Type<typeof Organization> {
11
+ }
12
+ declare const Person: Type.Obj<{
13
+ readonly name: string;
14
+ readonly ignore?: string | undefined;
15
+ readonly active?: boolean | undefined;
16
+ readonly address?: {
17
+ readonly street: string;
18
+ readonly city: string;
19
+ readonly state: string;
20
+ readonly zip: number;
21
+ } | undefined;
22
+ readonly employer?: import("@dxos/echo/internal").Ref<import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & {
23
+ readonly name: string;
24
+ }> | undefined;
25
+ readonly tags?: readonly import("@dxos/echo/internal").Ref<import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & {
26
+ readonly label: string;
27
+ readonly hue?: string | undefined;
28
+ }>[] | undefined;
29
+ readonly status?: "active" | "inactive" | undefined;
30
+ readonly notes?: string | undefined;
31
+ readonly location?: readonly [number, number, (number | undefined)?] | undefined;
32
+ readonly tasks?: readonly string[] | undefined;
33
+ readonly locations?: readonly (readonly [number, number, (number | undefined)?])[] | undefined;
34
+ readonly identities?: readonly {
35
+ readonly type: string;
36
+ readonly value: string;
37
+ }[] | undefined;
38
+ }, Schema.Struct.Fields>;
39
+ export interface Person extends Schema.Schema.Type<typeof Person> {
40
+ }
41
+ type DefaultStoryProps<T extends AnyProperties> = {
42
+ schema?: Schema.Schema<T>;
43
+ debug?: boolean;
44
+ } & FormRootProps<T>;
45
+ declare const meta: {
46
+ title: string;
47
+ component: {
48
+ <T extends AnyProperties = AnyProperties>({ children, schema, values, onSave, onCancel, ...props }: FormRootProps<T>): React.JSX.Element;
49
+ displayName: string;
50
+ };
51
+ render: <T extends AnyProperties = AnyProperties>({ debug, schema, values: valuesProp, ...props }: DefaultStoryProps<T>) => React.JSX.Element;
52
+ decorators: import("@storybook/react").Decorator[];
53
+ parameters: {
54
+ layout: string;
55
+ translations: [{
56
+ readonly 'en-US': {
57
+ readonly "@dxos/react-ui-form": {
58
+ readonly 'fields.label': 'Fields';
59
+ readonly 'hidden-fields.label': 'Hidden Fields';
60
+ readonly 'empty-readonly-ref-field.label': '(none)';
61
+ readonly 'field-property.label': 'Property';
62
+ readonly 'field-property.placeholder': 'Property name';
63
+ readonly 'field-format.label': 'Type';
64
+ readonly 'field-path.label': 'Field path';
65
+ readonly 'add-item.button': 'Add item';
66
+ readonly 'add-property-button.label': 'Add property';
67
+ readonly 'boolean-input-true.value': 'Yes';
68
+ readonly 'boolean-input-false.value': 'No';
69
+ readonly 'show-field.label': 'Show field';
70
+ readonly 'hide-field.label': 'Hide field';
71
+ readonly 'delete-field.label': 'Delete field';
72
+ readonly 'create-option.label': 'Create';
73
+ readonly 'add-tag.label': 'Add tag';
74
+ readonly 'ref-field-combobox-input.placeholder': 'Search\u2026';
75
+ readonly 'ref-field.placeholder': 'Select\u2026';
76
+ readonly 'ref-field.placeholder_one': 'Select\u2026';
77
+ readonly 'ref-field.placeholder_other': 'Select items\u2026';
78
+ readonly 'example.placeholder': 'Example';
79
+ readonly 'latitude.placeholder': 'Latitude (e.g., 40.7128)';
80
+ readonly 'longitude.placeholder': 'Longitude (e.g., -74.0060)';
81
+ readonly 'cancel-button.label': 'Cancel';
82
+ readonly 'save-button.label': 'Save';
83
+ readonly 'create-text.label': 'Create text';
84
+ readonly 'format.boolean.label': 'Boolean';
85
+ readonly 'format.currency.label': 'Currency';
86
+ readonly 'format.date.label': 'Date';
87
+ readonly 'format.date-time.label': 'DateTime';
88
+ readonly 'format.did.label': 'DID';
89
+ readonly 'format.duration.label': 'Duration';
90
+ readonly 'format.dxn.label': 'DXN';
91
+ readonly 'format.email.label': 'Email';
92
+ readonly 'format.formula.label': 'Formula';
93
+ readonly 'format.hostname.label': 'Hostname';
94
+ readonly 'format.integer.label': 'Integer';
95
+ readonly 'format.json.label': 'JSON';
96
+ readonly 'format.lnglat.label': 'Geopoint';
97
+ readonly 'format.markdown.label': 'Markdown';
98
+ readonly 'format.percent.label': 'Percent';
99
+ readonly 'format.ref.label': 'Reference';
100
+ readonly 'format.regex.label': 'RegExp';
101
+ readonly 'format.string.label': 'String';
102
+ readonly 'format.single-select.label': 'Select';
103
+ readonly 'format.multi-select.label': 'Multi-select';
104
+ readonly 'format.text.label': 'Long text';
105
+ readonly 'format.time.label': 'Time';
106
+ readonly 'format.timestamp.label': 'Timestamp';
107
+ readonly 'format.user.label': 'User';
108
+ readonly 'format.number.label': 'Number';
109
+ readonly 'format.uri.label': 'URI';
110
+ readonly 'format.url.label': 'URL';
111
+ readonly 'format.uuid.label': 'UUID';
112
+ readonly 'latitude.label': 'Latitude';
113
+ readonly 'longitude.label': 'Longitude';
114
+ readonly 'select-option.label': 'Label';
115
+ readonly 'select-option-label.placeholder': 'Option label';
116
+ readonly 'select-option-delete.button': 'Delete';
117
+ readonly 'select-option-add.button': 'Add option';
118
+ readonly 'system-schema.title': 'System type';
119
+ readonly 'system-schema.description': 'System type: cannot add or remove fields.';
120
+ readonly 'remove.button': 'Remove';
121
+ };
122
+ };
123
+ }];
124
+ };
125
+ };
25
126
  export default meta;
26
- type Story<T extends BaseObject> = StoryObj<StoryProps<T>>;
27
- export declare const Default: Story<TestType>;
28
- export declare const Organization: Story<Schema.Schema.Type<typeof Testing.OrganizationSchema>>;
29
- export declare const OrganizationAutoSave: Story<Schema.Schema.Type<typeof Testing.OrganizationSchema>>;
30
- declare const ShapeSchema: Schema.mutable<Schema.Struct<{
31
- shape: Schema.optional<Schema.Union<[Schema.Struct<{
32
- type: Schema.Literal<["circle"]>;
33
- radius: Schema.optional<Schema.SchemaClass<number, number, never>>;
34
- }>, Schema.Struct<{
35
- type: Schema.Literal<["square"]>;
36
- size: Schema.optional<Schema.refine<number, typeof Schema.Number>>;
37
- }>]>>;
38
- }>>;
39
- type ShapeType = Schema.Schema.Type<typeof ShapeSchema>;
40
- export declare const DiscriminatedShape: Story<ShapeType>;
41
- declare const ArraysSchema: Schema.mutable<Schema.Struct<{
42
- names: Schema.Array$<Schema.filter<typeof Schema.String>>;
43
- addresses: Schema.Array$<Schema.Struct<{
44
- street: Schema.optional<Schema.SchemaClass<string, string, never>>;
45
- city: Schema.optional<Schema.SchemaClass<string, string, never>>;
46
- zip: Schema.optional<Schema.refine<string, typeof Schema.String>>;
47
- location: Schema.optional<Schema.Tuple<[Schema.refine<number, Schema.transform<typeof Schema.Number, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.refine<number, Schema.transform<typeof Schema.Number, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.Element<typeof Schema.Number, "?">]>>;
48
- }>>;
49
- }>>;
50
- type ArraysType = Schema.Schema.Type<typeof ArraysSchema>;
51
- export declare const Arrays: StoryObj<FormProps<ArraysType>>;
52
- declare const ColorSchema: Schema.mutable<Schema.Struct<{
53
- color: Schema.Union<[Schema.Literal<["red"]>, Schema.Literal<["green"]>, Schema.Literal<["blue"]>]>;
54
- }>>;
55
- type ColorType = Schema.Schema.Type<typeof ColorSchema>;
56
- export declare const Enum: StoryObj<FormProps<ColorType>>;
57
- export declare const Refs: StoryObj<FormProps<ContactType>>;
127
+ type Story<T extends AnyProperties> = StoryObj<DefaultStoryProps<T>>;
128
+ export declare const Default: Story<ExcludeId<typeof Person>>;
129
+ export declare const Readonly: Story<ExcludeId<typeof Person>>;
130
+ export declare const Static: Story<ExcludeId<typeof Person>>;
131
+ export declare const Empty: Story<ExcludeId<typeof Person>>;
58
132
  //# sourceMappingURL=Form.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/Form.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,UAAU,EAA2D,MAAM,mBAAmB,CAAC;AAG7G,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAU9C,QAAA,MAAM,UAAU;;;;;;;;;;;GAMO,CAAC;AAExB,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAEtD,KAAK,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AA0BpF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAc/B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,CAAC,CAAC,SAAS,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3D,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAcnC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CASrF,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAU7F,CAAC;AAcF,QAAA,MAAM,WAAW;;;;;;;;GAaM,CAAC;AAExB,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAsB/C,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;GAGK,CAAC;AAExB,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;AAE1D,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CASlD,CAAC;AAEF,QAAA,MAAM,WAAW;;GAIM,CAAC;AAExB,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;AAExD,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAQ/C,CAAC;AA6CF,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAQjD,CAAC"}
1
+ {"version":3,"file":"Form.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/Form.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAqC,IAAI,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzD,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,aAAa,EAAU,MAAM,QAAQ,CAAC;AAE1E,QAAA,MAAM,YAAY;;wBAOjB,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG;AAEhF,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsCX,CAAC;AAEF,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC;CAAG;AAEpE,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAmDrB,QAAA,MAAM,IAAI;;;;;;aAjDY,CAAC,SAAS,aAAa,mEAK1C,iBAAiB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEiB,CAAC;eAE1B,IAAI;AAEnB,KAAK,KAAK,CAAC,CAAC,SAAS,aAAa,IAAI,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQrE,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,CAMnD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,CAMpD,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,CAMlD,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,CAEjD,CAAC"}
@@ -0,0 +1,43 @@
1
+ import * as SchemaAST from 'effect/SchemaAST';
2
+ import React from 'react';
3
+ import { type ProjectionModel } from '@dxos/schema';
4
+ import { type RefFieldProps } from './fields';
5
+ import { type FormFieldComponentProps, type FormFieldMap, type FormFieldProvider } from './FormFieldComponent';
6
+ export type FormFieldProps = {
7
+ /**
8
+ * AST of the property to render.
9
+ */
10
+ type: SchemaAST.AST;
11
+ /**
12
+ * Name of the property.
13
+ */
14
+ name: string;
15
+ /**
16
+ * Path to the current object from the root. Used with nested forms.
17
+ */
18
+ path?: (string | number)[];
19
+ /**
20
+ * Optional projection for projection-based field management.
21
+ */
22
+ projection?: ProjectionModel;
23
+ /**
24
+ * Map of custom renderers for specific properties.
25
+ * Prefer fieldProvider for plugin specific input surfaces.
26
+ */
27
+ fieldMap?: FormFieldMap;
28
+ /**
29
+ * Function to lookup custom renderers for specific properties.
30
+ */
31
+ fieldProvider?: FormFieldProvider;
32
+ /**
33
+ * Typename of the ref type that the create props apply to.
34
+ * When set, createOptionLabel/createOptionIcon/createInitialValuePath/createFieldMap/onCreate
35
+ * are only passed to ref fields whose typename matches.
36
+ */
37
+ createTypename?: string;
38
+ } & Pick<FormFieldComponentProps, 'autoFocus' | 'readonly' | 'layout'> & Pick<RefFieldProps, 'createOptionLabel' | 'createOptionIcon' | 'createInitialValuePath' | 'createFieldMap' | 'db' | 'useSchema' | 'getOptions' | 'onCreate'>;
39
+ export declare function FormField(props: FormFieldProps): React.JSX.Element | null;
40
+ export declare namespace FormField {
41
+ var displayName: string;
42
+ }
43
+ //# sourceMappingURL=FormField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormField.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAkB,MAAM,OAAO,CAAC;AAcvC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,EAOL,KAAK,aAAa,EAInB,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC,GACpE,IAAI,CACF,aAAa,EACX,mBAAmB,GACnB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,IAAI,GACJ,WAAW,GACX,YAAY,GACZ,UAAU,CACb,CAAC;kCAEsB,KAAK,EAAE,cAAc"}
@@ -0,0 +1,79 @@
1
+ import type * as Schema from 'effect/Schema';
2
+ import type * as SchemaAST from 'effect/SchemaAST';
3
+ import React, { Component, type FC, type FocusEvent, type PropsWithChildren, type ReactElement, type ReactNode } from 'react';
4
+ import { type Database } from '@dxos/echo';
5
+ import { type Format } from '@dxos/echo/internal';
6
+ import { type FormFieldStatus } from '../../hooks';
7
+ /**
8
+ * Dynamic props passed to input components.
9
+ */
10
+ export type FormFieldStateProps<T = any> = {
11
+ getStatus: () => FormFieldStatus;
12
+ getValue: () => T | undefined;
13
+ onBlur: (event: FocusEvent<HTMLElement>) => void;
14
+ onValueChange: (type: SchemaAST.AST, value: T) => void;
15
+ };
16
+ /**
17
+ * Presentation mode.
18
+ * - full: Show label, control, and status.
19
+ * - compact: Show label and control.
20
+ * - inline: Control only.
21
+ * - static: Plain DOM; omit all undefined values.
22
+ */
23
+ export type Presentation = 'full' | 'compact' | 'inline' | 'static';
24
+ /**
25
+ * Props passed to input components.
26
+ */
27
+ export type FormFieldComponentProps<T = any> = {
28
+ type: SchemaAST.AST;
29
+ format?: Format.TypeFormat;
30
+ readonly?: boolean;
31
+ label: string;
32
+ placeholder?: string;
33
+ autoFocus?: boolean;
34
+ layout?: Presentation;
35
+ /** Database the form is editing against; populated for fields whose value is an ECHO object/Ref. */
36
+ db?: Database.Database;
37
+ } & FormFieldStateProps<T>;
38
+ /**
39
+ * Form field component.
40
+ */
41
+ export type FormFieldComponent = FC<FormFieldComponentProps>;
42
+ export type FormFieldMap = Record<string, FormFieldComponent>;
43
+ export type FormFieldProvider = (props: {
44
+ prop: string;
45
+ schema: Schema.Schema<any>;
46
+ fieldProps: FormFieldComponentProps;
47
+ }) => ReactElement | undefined;
48
+ export type FormFieldLabelProps = {
49
+ asChild?: boolean;
50
+ error?: string;
51
+ } & Pick<FormFieldComponentProps, 'label' | 'readonly'>;
52
+ export declare function FormFieldLabel({ label, error, readonly, asChild }: FormFieldLabelProps): React.JSX.Element;
53
+ export declare namespace FormFieldLabel {
54
+ var displayName: string;
55
+ }
56
+ export type FormFieldWrapperProps<T = any> = Pick<FormFieldComponentProps, 'readonly' | 'label' | 'layout' | 'getStatus' | 'getValue'> & {
57
+ children?: (props: {
58
+ value: T;
59
+ }) => ReactNode;
60
+ };
61
+ export declare const FormFieldWrapper: <T>(props: FormFieldWrapperProps<T>) => React.JSX.Element | null;
62
+ type FormFieldErrorState = {
63
+ error: Error | undefined;
64
+ };
65
+ type FormFieldErrorBoundaryProps = PropsWithChildren<{
66
+ path?: (string | number)[];
67
+ }>;
68
+ export declare class FormFieldErrorBoundary extends Component<FormFieldErrorBoundaryProps, FormFieldErrorState> {
69
+ static getDerivedStateFromError(error: Error): {
70
+ error: Error;
71
+ };
72
+ state: {
73
+ error: undefined;
74
+ };
75
+ componentDidUpdate(prevProps: FormFieldErrorBoundaryProps): void;
76
+ render(): string | number | bigint | boolean | React.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
77
+ private resetError;
78
+ }
79
+ //# sourceMappingURL=FormFieldComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFieldComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormFieldComponent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ import { type FormFieldComponentProps } from './FormFieldComponent';
4
+ declare const DefaultStory: ({ type, placeholder, readonly, onBlur, onValueChange, ...props }: FormFieldComponentProps<string>) => React.JSX.Element;
5
+ declare const meta: Meta<typeof DefaultStory>;
6
+ export default meta;
7
+ type Story = StoryObj<typeof meta>;
8
+ export declare const Default: Story;
9
+ //# sourceMappingURL=FormFieldComponent.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFieldComponent.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormFieldComponent.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAwC,MAAM,OAAO,CAAC;AAK7D,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,sBAAsB,CAAC;AAEtF,QAAA,MAAM,YAAY,qEAOf,uBAAuB,CAAC,MAAM,CAAC,sBAsBjC,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAOnC,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { type AnyProperties } from '@dxos/echo/internal';
3
+ import { type SchemaProperty } from '@dxos/effect';
4
+ import { type FormHandlerProps } from '../../hooks';
5
+ import { type FormFieldProps } from './FormField';
6
+ export type FormFieldSetProps<T extends AnyProperties> = {
7
+ label?: string;
8
+ sort?: string[];
9
+ exclude?: (props: SchemaProperty[]) => SchemaProperty[];
10
+ } & Pick<FormHandlerProps<T>, 'schema'> & Pick<FormFieldProps, 'path' | 'autoFocus' | 'readonly' | 'layout' | 'projection' | 'fieldMap' | 'fieldProvider' | 'createTypename' | 'createOptionLabel' | 'createOptionIcon' | 'createInitialValuePath' | 'createFieldMap' | 'db' | 'useSchema' | 'getOptions' | 'onCreate'>;
11
+ export declare function FormFieldSet({ label, schema, readonly, path, sort, exclude, projection, layout, ...props }: FormFieldSetProps<any>): React.JSX.Element | null;
12
+ export declare namespace FormFieldSet {
13
+ var displayName: string;
14
+ }
15
+ //# sourceMappingURL=FormFieldSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFieldSet.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormFieldSet.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,CAAC;CACzD,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GACrC,IAAI,CACF,cAAc,EACZ,MAAM,GACN,WAAW,GACX,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,IAAI,GACJ,WAAW,GACX,YAAY,GACZ,UAAU,CACb,CAAC;qCAKyB,EAC3B,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,MAAM,EACN,GAAG,KAAK,EACT,EAAE,iBAAiB,CAAC,GAAG,CAAC"}
@@ -0,0 +1,18 @@
1
+ import * as SchemaAST from 'effect/SchemaAST';
2
+ import React from 'react';
3
+ import { type FormFieldProps } from '../FormField';
4
+ import { type FormFieldStateProps } from '../FormFieldComponent';
5
+ export type ArrayFieldProps = {
6
+ label: string;
7
+ fieldProps: FormFieldStateProps;
8
+ } & FormFieldProps;
9
+ export declare function ArrayField({ type, path, label, readonly, layout, fieldProps: inputProps, ...props }: ArrayFieldProps): React.JSX.Element | null;
10
+ export declare namespace ArrayField {
11
+ var displayName: string;
12
+ }
13
+ /**
14
+ * Returns the default empty value for a given AST.
15
+ * Used for initializing new array values etc.
16
+ */
17
+ export declare const getDefaultValue: (ast?: SchemaAST.AST) => any;
18
+ //# sourceMappingURL=ArrayField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/ArrayField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAS3C,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,mBAAmB,CAAC;CACjC,GAAG,cAAc,CAAC;mCAEQ,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,UAAU,EAAE,UAAU,EACtB,GAAG,KAAK,EACT,EAAE,eAAe;;;;AAoGlB;;;GAGG;AAEH,eAAO,MAAM,eAAe,SAAU,SAAS,CAAC,GAAG,KAAG,GAsBrD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { type FormFieldComponentProps } from '../FormFieldComponent';
3
+ export declare const BooleanField: ({ type, readonly, onValueChange, ...props }: FormFieldComponentProps<boolean>) => React.JSX.Element;
4
+ //# sourceMappingURL=BooleanField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/BooleanField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,uBAAuB,CAAC;AAEvF,eAAO,MAAM,YAAY,gDAAiD,uBAAuB,CAAC,OAAO,CAAC,sBAWzG,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { type GeoPoint } from '@dxos/echo/internal';
3
+ import { type FormFieldComponentProps } from '../FormFieldComponent';
4
+ export declare const GeoPointField: ({ type, label, readonly, layout, getStatus, getValue, onValueChange, onBlur, }: FormFieldComponentProps<GeoPoint>) => React.JSX.Element | null;
5
+ //# sourceMappingURL=GeoPointField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoPointField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/GeoPointField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsE,MAAM,OAAO,CAAC;AAE3F,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMjE,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,mFASvB,uBAAuB,CAAC,QAAQ,CAAC,6BA+EnC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { type FormFieldComponentProps } from '../FormFieldComponent';
3
+ /**
4
+ * Form field that edits a markdown value in a CodeMirror editor.
5
+ * Supports two backings:
6
+ * - `Schema.String` annotated with `Format.TypeFormat.Markdown`: edited as plain text via `getValue`/`onValueChange`.
7
+ * - `Ref<Text>` annotated with `Format.TypeFormat.Markdown`: edited in-place via an Automerge doc accessor.
8
+ * When the ref is empty and a database is available, a create button is shown to allocate a new Text.
9
+ */
10
+ export declare const MarkdownField: ({ type, readonly, label, placeholder, layout, db, getStatus, getValue, onValueChange, }: FormFieldComponentProps) => React.JSX.Element | null;
11
+ //# sourceMappingURL=MarkdownField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/MarkdownField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAYpD,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAKrF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,4FAUvB,uBAAuB,6BAgDzB,CAAC"}