@dxos/react-ui-form 0.8.4-staging.60fe92afc8 → 0.9.1-main.c7dcc2e112
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/dist/lib/browser/index.mjs +2221 -2147
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +2221 -2147
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts +3 -3
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.d.ts +15 -110
- package/dist/types/src/components/Form/Form.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.stories.d.ts +3 -37
- package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/FormControls.d.ts +66 -0
- package/dist/types/src/components/Form/FormControls.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/FieldHeader.d.ts +19 -0
- package/dist/types/src/components/Form/FormField/FieldHeader.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/FormField.d.ts +30 -0
- package/dist/types/src/components/Form/FormField/FormField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/FormFieldWrapper.d.ts +47 -0
- package/dist/types/src/components/Form/FormField/FormFieldWrapper.d.ts.map +1 -0
- package/dist/types/src/components/Form/{FormFieldComponent.stories.d.ts → FormField/FormFieldWrapper.stories.d.ts} +3 -3
- package/dist/types/src/components/Form/FormField/FormFieldWrapper.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields/ArrayField}/ArrayField.d.ts +2 -2
- package/dist/types/src/components/Form/FormField/fields/ArrayField/ArrayField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/ArrayField/ArrayField.stories.d.ts +87 -0
- package/dist/types/src/components/Form/FormField/fields/ArrayField/ArrayField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/ArrayField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/ArrayField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/BooleanField.d.ts +4 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/BooleanField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/BooleanField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/BooleanField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/BooleanField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/DateField.d.ts +4 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/DateField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/DateField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/DateField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/DateField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields/GeoPointField}/GeoPointField.d.ts +2 -2
- package/dist/types/src/components/Form/FormField/fields/GeoPointField/GeoPointField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/GeoPointField/GeoPointField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/GeoPointField/GeoPointField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/GeoPointField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/GeoPointField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields/MarkdownField}/MarkdownField.d.ts +2 -2
- package/dist/types/src/components/Form/FormField/fields/MarkdownField/MarkdownField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/MarkdownField/MarkdownField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/MarkdownField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/MarkdownField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/NumberField.d.ts +4 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/NumberField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/NumberField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/NumberField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/NumberField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/InlineRefField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/RefField.d.ts +16 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/RefField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/RefField.stories.d.ts +92 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/RefField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/RefField.test.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/index.d.ts +3 -0
- package/dist/types/src/components/Form/FormField/fields/RefField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields/SelectField}/SelectField.d.ts +2 -2
- package/dist/types/src/components/Form/FormField/fields/SelectField/SelectField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/SelectField/SelectField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/SelectField/SelectField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/SelectField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/SelectField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/SelectOptionField/SelectOptionField.d.ts +5 -0
- package/dist/types/src/components/Form/FormField/fields/SelectOptionField/SelectOptionField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/SelectOptionField/SelectOptionField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/SelectOptionField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/SelectOptionField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/TextAreaField.d.ts +4 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/TextAreaField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/TextAreaField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/TextAreaField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/TextAreaField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/TextField.d.ts +4 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/TextField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/TextField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/TextField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/TextField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields/TupleField}/TupleField.d.ts +2 -2
- package/dist/types/src/components/Form/FormField/fields/TupleField/TupleField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TupleField/TupleField.stories.d.ts +88 -0
- package/dist/types/src/components/Form/FormField/fields/TupleField/TupleField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/fields/TupleField/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormField/fields/TupleField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{fields → FormField/fields}/index.d.ts +0 -1
- package/dist/types/src/components/Form/FormField/fields/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormField/index.d.ts +5 -0
- package/dist/types/src/components/Form/FormField/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/{FormFieldSet.d.ts → FormFieldSet/FormFieldSet.d.ts} +4 -3
- package/dist/types/src/components/Form/FormFieldSet/FormFieldSet.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormFieldSet/index.d.ts +2 -0
- package/dist/types/src/components/Form/FormFieldSet/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/FormLayout.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/FormLayout.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/FormLayout.stories.test.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/FormLayout.test.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/index.d.ts +3 -0
- package/dist/types/src/components/Form/FormLayout/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/parser.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormLayout/parser.test.d.ts.map +1 -0
- package/dist/types/src/components/Form/index.d.ts +3 -5
- package/dist/types/src/components/Form/index.d.ts.map +1 -1
- package/dist/types/src/components/Form/meta-tags.d.ts +2 -2
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
- package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts +6 -23
- package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts.map +1 -1
- package/dist/types/src/components/ObjectProperties/ObjectProperties.d.ts.map +1 -1
- package/dist/types/src/components/RefEditor/RefEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useFormContext.d.ts +37 -0
- package/dist/types/src/hooks/useFormContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useFormHandler.d.ts +1 -4
- package/dist/types/src/hooks/useFormHandler.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/{components/testing.d.ts → testing/TestLayout.d.ts} +1 -1
- package/dist/types/src/testing/TestLayout.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +3 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/schema.d.ts +43 -0
- package/dist/types/src/testing/schema.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +112 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +1 -0
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/omit.d.ts +12 -0
- package/dist/types/src/util/omit.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +35 -34
- package/src/components/FieldEditor/FieldEditor.stories.tsx +1 -1
- package/src/components/FieldEditor/FieldEditor.test.tsx +1 -1
- package/src/components/FieldEditor/FieldEditor.tsx +5 -4
- package/src/components/Form/Form.stories.tsx +4 -49
- package/src/components/Form/Form.tsx +18 -447
- package/src/components/Form/FormControls.tsx +320 -0
- package/src/components/Form/FormField/FieldHeader.tsx +36 -0
- package/src/components/Form/{FormField.tsx → FormField/FormField.tsx} +35 -59
- package/src/components/Form/{FormFieldComponent.stories.tsx → FormField/FormFieldWrapper.stories.tsx} +24 -17
- package/src/components/Form/{FormFieldComponent.tsx → FormField/FormFieldWrapper.tsx} +21 -95
- package/src/components/Form/FormField/fields/ArrayField/ArrayField.stories.tsx +103 -0
- package/src/components/Form/FormField/fields/ArrayField/ArrayField.tsx +269 -0
- package/src/components/Form/FormField/fields/ArrayField/index.ts +5 -0
- package/src/components/Form/FormField/fields/BooleanField/BooleanField.stories.tsx +52 -0
- package/src/components/Form/{fields → FormField/fields/BooleanField}/BooleanField.tsx +10 -3
- package/src/components/Form/FormField/fields/BooleanField/index.ts +5 -0
- package/src/components/Form/FormField/fields/DateField/DateField.stories.tsx +60 -0
- package/src/components/Form/{fields → FormField/fields/DateField}/DateField.tsx +4 -2
- package/src/components/Form/FormField/fields/DateField/index.ts +5 -0
- package/src/components/Form/FormField/fields/GeoPointField/GeoPointField.stories.tsx +53 -0
- package/src/components/Form/{fields → FormField/fields/GeoPointField}/GeoPointField.tsx +4 -3
- package/src/components/Form/FormField/fields/GeoPointField/index.ts +5 -0
- package/src/components/Form/{fields → FormField/fields/MarkdownField}/MarkdownField.stories.tsx +6 -6
- package/src/components/Form/{fields → FormField/fields/MarkdownField}/MarkdownField.tsx +3 -2
- package/src/components/Form/FormField/fields/MarkdownField/index.ts +5 -0
- package/src/components/Form/FormField/fields/NumberField/NumberField.stories.tsx +52 -0
- package/src/components/Form/{fields → FormField/fields/NumberField}/NumberField.tsx +27 -2
- package/src/components/Form/FormField/fields/NumberField/index.ts +5 -0
- package/src/components/Form/{fields → FormField/fields/RefField}/InlineRefField.tsx +8 -7
- package/src/components/Form/FormField/fields/RefField/RefField.stories.tsx +97 -0
- package/src/components/Form/{fields → FormField/fields/RefField}/RefField.test.ts +2 -1
- package/src/components/Form/{fields → FormField/fields/RefField}/RefField.tsx +6 -25
- package/src/components/Form/FormField/fields/RefField/index.ts +6 -0
- package/src/components/Form/FormField/fields/SelectField/SelectField.stories.tsx +53 -0
- package/src/components/Form/{fields → FormField/fields/SelectField}/SelectField.tsx +4 -2
- package/src/components/Form/FormField/fields/SelectField/index.ts +5 -0
- package/src/components/Form/{fields → FormField/fields/SelectOptionField}/SelectOptionField.stories.tsx +5 -5
- package/src/components/Form/{fields → FormField/fields/SelectOptionField}/SelectOptionField.tsx +55 -53
- package/src/components/Form/FormField/fields/SelectOptionField/index.ts +5 -0
- package/src/components/Form/FormField/fields/TextAreaField/TextAreaField.stories.tsx +53 -0
- package/src/components/Form/{fields → FormField/fields/TextAreaField}/TextAreaField.tsx +4 -2
- package/src/components/Form/FormField/fields/TextAreaField/index.ts +5 -0
- package/src/components/Form/FormField/fields/TextField/TextField.stories.tsx +52 -0
- package/src/components/Form/{fields → FormField/fields/TextField}/TextField.tsx +4 -2
- package/src/components/Form/FormField/fields/TextField/index.ts +5 -0
- package/src/components/Form/FormField/fields/TupleField/TupleField.stories.tsx +55 -0
- package/src/components/Form/{fields → FormField/fields/TupleField}/TupleField.tsx +4 -2
- package/src/components/Form/FormField/fields/TupleField/index.ts +5 -0
- package/src/components/Form/{fields → FormField/fields}/index.ts +0 -1
- package/src/components/Form/FormField/index.ts +8 -0
- package/src/components/Form/{FormFieldSet.tsx → FormFieldSet/FormFieldSet.tsx} +16 -32
- package/src/components/Form/FormFieldSet/index.ts +5 -0
- package/src/components/Form/{Layout → FormLayout}/FormLayout.stories.tsx +4 -4
- package/src/components/Form/{Layout → FormLayout}/FormLayout.tsx +7 -6
- package/src/components/Form/{Layout → FormLayout}/index.ts +1 -2
- package/src/components/Form/index.ts +3 -5
- package/src/components/Form/meta-tags.ts +1 -1
- package/src/components/ObjectForm/ObjectForm.tsx +15 -14
- package/src/components/ObjectPicker/ObjectPicker.tsx +19 -27
- package/src/components/ObjectProperties/ObjectProperties.stories.tsx +1 -1
- package/src/components/ObjectProperties/ObjectProperties.test.tsx +1 -1
- package/src/components/ObjectProperties/ObjectProperties.tsx +2 -1
- package/src/components/RefEditor/RefEditor.stories.tsx +0 -1
- package/src/components/ViewEditor/ViewEditor.stories.tsx +4 -5
- package/src/components/ViewEditor/ViewEditor.test.tsx +1 -1
- package/src/components/ViewEditor/ViewEditor.tsx +98 -128
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useFormContext.ts +86 -0
- package/src/hooks/useFormHandler.ts +1 -4
- package/src/index.ts +1 -0
- package/src/{components/testing.tsx → testing/TestLayout.tsx} +1 -1
- package/src/testing/index.ts +7 -0
- package/src/testing/schema.ts +59 -0
- package/src/types.ts +134 -0
- package/src/util/index.ts +1 -0
- package/src/util/omit.ts +47 -0
- package/src/vitest-setup.ts +40 -0
- package/dist/types/src/components/Form/FormField.d.ts +0 -52
- package/dist/types/src/components/Form/FormField.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormFieldComponent.d.ts +0 -98
- package/dist/types/src/components/Form/FormFieldComponent.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormFieldComponent.stories.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormFieldSet.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormTooltipsContext.d.ts +0 -19
- package/dist/types/src/components/Form/FormTooltipsContext.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/FormLayout.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/FormLayout.stories.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/FormLayout.stories.test.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/FormLayout.test.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/annotation.d.ts +0 -30
- package/dist/types/src/components/Form/Layout/annotation.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/index.d.ts +0 -4
- package/dist/types/src/components/Form/Layout/index.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/parser.d.ts.map +0 -1
- package/dist/types/src/components/Form/Layout/parser.test.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/ArrayField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/BooleanField.d.ts +0 -4
- package/dist/types/src/components/Form/fields/BooleanField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/DateField.d.ts +0 -4
- package/dist/types/src/components/Form/fields/DateField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/GeoPointField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/InlineRefField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/MarkdownField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/MarkdownField.stories.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/NumberField.d.ts +0 -4
- package/dist/types/src/components/Form/fields/NumberField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/RefField.d.ts +0 -34
- package/dist/types/src/components/Form/fields/RefField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/RefField.test.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/SelectField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/SelectOptionField.d.ts +0 -5
- package/dist/types/src/components/Form/fields/SelectOptionField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/SelectOptionField.stories.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/TextAreaField.d.ts +0 -4
- package/dist/types/src/components/Form/fields/TextAreaField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/TextField.d.ts +0 -4
- package/dist/types/src/components/Form/fields/TextField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/TupleField.d.ts.map +0 -1
- package/dist/types/src/components/Form/fields/index.d.ts.map +0 -1
- package/dist/types/src/components/testing.d.ts.map +0 -1
- package/src/components/Form/AUDIT.md +0 -17
- package/src/components/Form/FormTooltipsContext.ts +0 -25
- package/src/components/Form/Layout/annotation.ts +0 -38
- package/src/components/Form/README.md +0 -3
- package/src/components/Form/fields/ArrayField.tsx +0 -173
- /package/dist/types/src/components/Form/{fields → FormField/fields/MarkdownField}/MarkdownField.stories.d.ts +0 -0
- /package/dist/types/src/components/Form/{fields → FormField/fields/RefField}/InlineRefField.d.ts +0 -0
- /package/dist/types/src/components/Form/{fields → FormField/fields/RefField}/RefField.test.d.ts +0 -0
- /package/dist/types/src/components/Form/{fields → FormField/fields/SelectOptionField}/SelectOptionField.stories.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/FormLayout.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/FormLayout.stories.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/FormLayout.stories.test.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/FormLayout.test.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/parser.d.ts +0 -0
- /package/dist/types/src/components/Form/{Layout → FormLayout}/parser.test.d.ts +0 -0
- /package/src/components/Form/{Layout → FormLayout}/FormLayout.stories.test.tsx +0 -0
- /package/src/components/Form/{Layout → FormLayout}/FormLayout.test.ts +0 -0
- /package/src/components/Form/{Layout → FormLayout}/parser.test.ts +0 -0
- /package/src/components/Form/{Layout → FormLayout}/parser.ts +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { Annotation, DXN, Format, Ref, Tag, Type } from '@dxos/echo';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Shared test schemas for form stories. Intentionally small, hand-written types
|
|
11
|
+
* (not `@dxos/types`) exercising the range of field renderers: scalars, nested
|
|
12
|
+
* structs, refs, ref arrays, enums, and the various formats.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export const Organization = Schema.Struct({
|
|
16
|
+
name: Schema.String.pipe(Schema.minLength(1)).annotations({ title: 'Full name' }),
|
|
17
|
+
}).pipe(Type.makeObject(DXN.make('com.example.type.organization', '0.1.0')));
|
|
18
|
+
|
|
19
|
+
export type Organization = Type.InstanceType<typeof Organization>;
|
|
20
|
+
|
|
21
|
+
export const Person = Schema.Struct({
|
|
22
|
+
name: Schema.String.pipe(Schema.minLength(1)).annotations({ title: 'Full name' }),
|
|
23
|
+
ignore: Schema.String.pipe(Annotation.FormInputAnnotation.set(false), Schema.optional),
|
|
24
|
+
active: Schema.optional(Schema.Boolean.annotations({ title: 'Active' })),
|
|
25
|
+
address: Schema.optional(
|
|
26
|
+
Schema.Struct({
|
|
27
|
+
street: Schema.String,
|
|
28
|
+
city: Schema.String,
|
|
29
|
+
// TODO(burdon): Constrain input control.
|
|
30
|
+
state: Schema.String.pipe(Schema.minLength(2), Schema.maxLength(2)).annotations({
|
|
31
|
+
title: 'State',
|
|
32
|
+
description: 'State code',
|
|
33
|
+
}),
|
|
34
|
+
zip: Schema.Number.annotations({ title: 'ZIP Code' }),
|
|
35
|
+
}).annotations({ title: 'Address' }),
|
|
36
|
+
),
|
|
37
|
+
employer: Schema.optional(Ref.Ref(Organization).annotations({ title: 'Employer' })),
|
|
38
|
+
tags: Schema.optional(Schema.Array(Ref.Ref(Tag.Tag)).annotations({ title: 'Tags' })),
|
|
39
|
+
status: Schema.optional(Schema.Literal('active', 'inactive').annotations({ title: 'Status' })),
|
|
40
|
+
notes: Schema.optional(Format.Text.annotations({ title: 'Notes' })),
|
|
41
|
+
location: Schema.optional(Format.GeoPoint.annotations({ title: 'Location' })),
|
|
42
|
+
birthday: Schema.optional(Format.DateOnly.annotations({ title: 'Birthday' })),
|
|
43
|
+
meetingAt: Schema.optional(Format.DateTime.annotations({ title: 'Next meeting' })),
|
|
44
|
+
reminderAt: Schema.optional(Format.TimeOnly.annotations({ title: 'Reminder time' })),
|
|
45
|
+
tasks: Schema.optional(Schema.Array(Schema.String).annotations({ title: 'Tasks' })),
|
|
46
|
+
locations: Schema.optional(Schema.Array(Format.GeoPoint).annotations({ title: 'Locations' })),
|
|
47
|
+
identities: Schema.optional(
|
|
48
|
+
Schema.Array(
|
|
49
|
+
Schema.Struct({
|
|
50
|
+
type: Schema.String.annotations({ title: 'Type' }),
|
|
51
|
+
value: Schema.String.annotations({ title: 'Value' }),
|
|
52
|
+
}).annotations({ title: 'Identities' }),
|
|
53
|
+
).annotations({
|
|
54
|
+
title: 'Identities',
|
|
55
|
+
}),
|
|
56
|
+
),
|
|
57
|
+
}).pipe(Type.makeObject(DXN.make('org.dxos.type.person', '0.1.0')));
|
|
58
|
+
|
|
59
|
+
export type Person = Type.InstanceType<typeof Person>;
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import type * as Schema from 'effect/Schema';
|
|
6
|
+
import type * as SchemaAST from 'effect/SchemaAST';
|
|
7
|
+
import { type FC, type FocusEvent, type ReactElement } from 'react';
|
|
8
|
+
|
|
9
|
+
import { type Database, type Entity, type Format, type Obj, type Type } from '@dxos/echo';
|
|
10
|
+
import { type URI } from '@dxos/keys';
|
|
11
|
+
import { type Palette } from '@dxos/react-ui';
|
|
12
|
+
import { type ProjectionModel } from '@dxos/schema';
|
|
13
|
+
|
|
14
|
+
//
|
|
15
|
+
// Field component contracts.
|
|
16
|
+
//
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validation status of a field.
|
|
20
|
+
*/
|
|
21
|
+
export type FormFieldStatus = {
|
|
22
|
+
status?: 'error';
|
|
23
|
+
error?: string;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* FormPresentation mode.
|
|
28
|
+
* - full: Show label, control, and status.
|
|
29
|
+
* - compact: Show label and control.
|
|
30
|
+
* - inline: Control only.
|
|
31
|
+
* - static: Plain DOM; omit all undefined values.
|
|
32
|
+
*/
|
|
33
|
+
export type FormPresentation = 'full' | 'compact' | 'inline' | 'static';
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Dynamic props passed to input components.
|
|
37
|
+
*/
|
|
38
|
+
export type FormFieldStateProps<T = any> = {
|
|
39
|
+
getStatus: () => FormFieldStatus;
|
|
40
|
+
getValue: () => T | undefined;
|
|
41
|
+
onBlur: (event: FocusEvent<HTMLElement>) => void;
|
|
42
|
+
onValueChange: (type: SchemaAST.AST, value: T) => void;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Props passed to input components.
|
|
47
|
+
*/
|
|
48
|
+
export type FormFieldRendererProps<T = any> = {
|
|
49
|
+
/** Database the form is editing against; populated for fields whose value is an ECHO object/Ref. */
|
|
50
|
+
db?: Database.Database;
|
|
51
|
+
type: SchemaAST.AST;
|
|
52
|
+
format?: Format.TypeFormat;
|
|
53
|
+
readonly?: boolean;
|
|
54
|
+
label: string;
|
|
55
|
+
/**
|
|
56
|
+
* Dotted JSON path of this field within the form values (e.g. `runtime.client.storage.persistent`).
|
|
57
|
+
*/
|
|
58
|
+
jsonPath?: string;
|
|
59
|
+
placeholder?: string;
|
|
60
|
+
autoFocus?: boolean;
|
|
61
|
+
layout?: FormPresentation;
|
|
62
|
+
} & FormFieldStateProps<T>;
|
|
63
|
+
|
|
64
|
+
export type FormFieldRenderer = FC<FormFieldRendererProps>;
|
|
65
|
+
|
|
66
|
+
export type FormFieldMap = Record<string, FormFieldRenderer>;
|
|
67
|
+
|
|
68
|
+
export type FormFieldProvider = (props: {
|
|
69
|
+
prop: string;
|
|
70
|
+
schema: Schema.Schema<any>;
|
|
71
|
+
fieldProps: FormFieldRendererProps;
|
|
72
|
+
}) => ReactElement | null | undefined;
|
|
73
|
+
|
|
74
|
+
//
|
|
75
|
+
// Ref / create contracts.
|
|
76
|
+
//
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Configuration for the inline "create a new referenced object" affordance, shared by every
|
|
80
|
+
* surface that can spawn a ref target (the picker, `RefField`, and the `Form*` props that forward
|
|
81
|
+
* to them). `onCreate` is intentionally NOT part of this group: its signature differs per consumer
|
|
82
|
+
* (the picker takes `(values)`, `RefField` takes `(schema, values)`).
|
|
83
|
+
*/
|
|
84
|
+
export type CreateOptions = {
|
|
85
|
+
createOptionLabel?: [string, { ns: string | readonly string[] }];
|
|
86
|
+
createOptionIcon?: string;
|
|
87
|
+
createInitialValuePath?: string;
|
|
88
|
+
createFieldMap?: FormFieldMap;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export type RefOption = {
|
|
92
|
+
id: string;
|
|
93
|
+
label: string;
|
|
94
|
+
hue?: Palette;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Data plumbing for resolving and creating ref targets: how to look up the ref type, query
|
|
99
|
+
* candidate objects, map them to options, and persist a newly-created one.
|
|
100
|
+
*/
|
|
101
|
+
export type RefFieldDataProps = {
|
|
102
|
+
// TODO(burdon): Replace hooks with callbacks?
|
|
103
|
+
useType?: (db?: Database.Database, typeUri?: URI.URI) => Type.AnyEntity;
|
|
104
|
+
useResults?: (db?: Database.Database, typename?: string) => Entity.Any[];
|
|
105
|
+
getOptions?: (
|
|
106
|
+
objects: Entity.Any[],
|
|
107
|
+
options?: { parentLabel?: boolean; getTypePlaceholder?: (typename: string) => string },
|
|
108
|
+
) => RefOption[];
|
|
109
|
+
/**
|
|
110
|
+
* Persist a newly-created object. Called after the user fills out the inline create form and
|
|
111
|
+
* clicks Save. Should add the object to the database and return it (sync or async). The returned
|
|
112
|
+
* object is then wired into this slot's form value as a Ref.
|
|
113
|
+
*/
|
|
114
|
+
onCreate?: (schema: Type.AnyEntity, values: any) => Obj.Unknown | Promise<Obj.Unknown> | undefined | void;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Form-wide field options carried by the form context and threaded down to every field. The
|
|
119
|
+
* canonical source for the config that `FormContextValue`, `FormFieldProps`, and `FormFieldSetProps`
|
|
120
|
+
* all share — so none of them has to reach "up" into another's props to express it.
|
|
121
|
+
*/
|
|
122
|
+
export type FormFieldOptions = {
|
|
123
|
+
db?: Database.Database;
|
|
124
|
+
readonly?: boolean;
|
|
125
|
+
layout?: FormPresentation;
|
|
126
|
+
projection?: ProjectionModel;
|
|
127
|
+
fieldMap?: FormFieldMap;
|
|
128
|
+
fieldProvider?: FormFieldProvider;
|
|
129
|
+
/**
|
|
130
|
+
* Typename of the ref type that the create props apply to.
|
|
131
|
+
* When set, the create affordance is only offered to ref fields whose typename matches.
|
|
132
|
+
*/
|
|
133
|
+
createTypename?: string;
|
|
134
|
+
};
|
package/src/util/index.ts
CHANGED
package/src/util/omit.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Option from 'effect/Option';
|
|
6
|
+
import * as Schema from 'effect/Schema';
|
|
7
|
+
import * as SchemaAST from 'effect/SchemaAST';
|
|
8
|
+
|
|
9
|
+
import { Annotation, Type } from '@dxos/echo';
|
|
10
|
+
|
|
11
|
+
// TODO(burdon): Reconcile with @dxos/echo.
|
|
12
|
+
export type ExcludeId<S extends Schema.Schema.AnyNoContext | Type.AnyEntity> = Omit<
|
|
13
|
+
S extends Type.AnyEntity
|
|
14
|
+
? Type.InstanceType<S>
|
|
15
|
+
: S extends Schema.Schema.AnyNoContext
|
|
16
|
+
? Schema.Schema.Type<S>
|
|
17
|
+
: never,
|
|
18
|
+
'id'
|
|
19
|
+
>;
|
|
20
|
+
|
|
21
|
+
// TODO(burdon): Move to @dxos/schema (re-export here).
|
|
22
|
+
export const omitId = <S extends Schema.Schema.AnyNoContext | Type.AnyEntity>(
|
|
23
|
+
schemaOrType: S,
|
|
24
|
+
): Schema.Schema<ExcludeId<S>, ExcludeId<S>> => {
|
|
25
|
+
const schema = Type.isType(schemaOrType)
|
|
26
|
+
? Type.getSchema(schemaOrType)
|
|
27
|
+
: (schemaOrType as Schema.Schema.AnyNoContext);
|
|
28
|
+
// Cast: `Schema.omit` cannot statically express the `ExcludeId<S>` result type, so the pipe
|
|
29
|
+
// returns a widened schema; the runtime shape matches the declared return type.
|
|
30
|
+
return schema.pipe(Schema.omit('id')) as any;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Drop fields annotated with `FormInputAnnotation.set(false)` from a schema so
|
|
35
|
+
* the form's validator doesn't trip on required-but-hidden fields. Used by
|
|
36
|
+
* the picker's inline create form, where a `FactoryAnnotation` typically
|
|
37
|
+
* supplies the hidden values (e.g. a backing-object Ref) outside the form.
|
|
38
|
+
*/
|
|
39
|
+
export const omitHiddenFormFields = <S extends Schema.Schema.AnyNoContext>(schema: S): S => {
|
|
40
|
+
const properties = SchemaAST.getPropertySignatures(schema.ast);
|
|
41
|
+
const hidden = properties
|
|
42
|
+
.filter((prop) => Option.getOrElse(Annotation.FormInputAnnotation.getFromAst(prop.type), () => true) === false)
|
|
43
|
+
.map((prop) => prop.name as string);
|
|
44
|
+
// Cast: omitting a dynamically-computed set of keys can't be expressed as the original `S`, but
|
|
45
|
+
// the result is structurally a subset of `S` and callers treat it as `S`.
|
|
46
|
+
return hidden.length === 0 ? schema : (schema.pipe(Schema.omit(...(hidden as [string, ...string[]]))) as any);
|
|
47
|
+
};
|
package/src/vitest-setup.ts
CHANGED
|
@@ -7,5 +7,45 @@ import '@testing-library/jest-dom/vitest';
|
|
|
7
7
|
|
|
8
8
|
// https://github.com/jsdom/jsdom/issues/3368#issuecomment-1396749033
|
|
9
9
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
10
|
+
import { disposeTabster, getTabster } from 'tabster';
|
|
11
|
+
import { afterEach } from 'vitest';
|
|
10
12
|
|
|
11
13
|
global.ResizeObserver = ResizeObserver;
|
|
14
|
+
|
|
15
|
+
// Tabster (used by `useListNavigation` inside `OrderedList` / `Listbox`) lazy-installs a
|
|
16
|
+
// `DummyInputManagerCore` refresh timer. After happy-dom tears down the per-file
|
|
17
|
+
// environment, the `Node` DOM global is gone — if the timer fires in that window the
|
|
18
|
+
// callback crashes with `ReferenceError: Node is not defined`. The 48 tests themselves
|
|
19
|
+
// always pass; the error is purely a post-teardown race.
|
|
20
|
+
//
|
|
21
|
+
// Two complementary mitigations:
|
|
22
|
+
// 1. `afterEach` disposes any active Tabster instance so its pending timers are cleared
|
|
23
|
+
// while the DOM is still alive.
|
|
24
|
+
// 2. A targeted `process` listener swallows the specific ReferenceError when it slips
|
|
25
|
+
// through (e.g. Tabster instance attached to a window we can't recover post-teardown).
|
|
26
|
+
// The listener is registered once via a process-level flag so re-running setup across
|
|
27
|
+
// test files doesn't pile up handlers.
|
|
28
|
+
|
|
29
|
+
afterEach(() => {
|
|
30
|
+
if (typeof globalThis.window === 'undefined') {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const instance = getTabster(globalThis.window);
|
|
34
|
+
if (instance) {
|
|
35
|
+
disposeTabster(instance);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const FLAG = '__dxos_tabster_post_teardown_filter__';
|
|
40
|
+
if (!(globalThis as Record<string, unknown>)[FLAG]) {
|
|
41
|
+
(globalThis as Record<string, unknown>)[FLAG] = true;
|
|
42
|
+
const handler = (err: unknown) => {
|
|
43
|
+
if (err instanceof ReferenceError && err.message === 'Node is not defined') {
|
|
44
|
+
// Swallow — see comment above.
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
throw err;
|
|
48
|
+
};
|
|
49
|
+
process.on('uncaughtException', handler);
|
|
50
|
+
process.on('unhandledRejection', handler);
|
|
51
|
+
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import * as SchemaAST from 'effect/SchemaAST';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { IconButtonProps } from '@dxos/react-ui';
|
|
4
|
-
import { type ProjectionModel } from '@dxos/schema';
|
|
5
|
-
import { type RefFieldProps } from './fields';
|
|
6
|
-
import { type FormFieldComponentProps, type FormFieldMap, type FormFieldProvider } from './FormFieldComponent';
|
|
7
|
-
export type FormFieldProps = {
|
|
8
|
-
/**
|
|
9
|
-
* AST of the property to render.
|
|
10
|
-
*/
|
|
11
|
-
type: SchemaAST.AST;
|
|
12
|
-
/**
|
|
13
|
-
* Name of the property. Used to derive a default label
|
|
14
|
-
* (`title ?? capitalize(name)`) and as the projection lookup key. Pass
|
|
15
|
-
* `null` to suppress the header label entirely -- the form still renders
|
|
16
|
-
* the field/struct, but `FormFieldSet`'s top-level `<FormFieldLabel>` is
|
|
17
|
-
* skipped. Used by `ArrayField` for object-array items, where every item
|
|
18
|
-
* would otherwise repeat the array's parent name.
|
|
19
|
-
*/
|
|
20
|
-
name: string | null;
|
|
21
|
-
/**
|
|
22
|
-
* Path to the current object from the root. Used with nested forms.
|
|
23
|
-
*/
|
|
24
|
-
path?: (string | number)[];
|
|
25
|
-
/**
|
|
26
|
-
* Optional projection for projection-based field management.
|
|
27
|
-
*/
|
|
28
|
-
projection?: ProjectionModel;
|
|
29
|
-
/**
|
|
30
|
-
* Map of custom renderers for specific properties.
|
|
31
|
-
* Prefer fieldProvider for plugin specific input surfaces.
|
|
32
|
-
*/
|
|
33
|
-
fieldMap?: FormFieldMap;
|
|
34
|
-
/**
|
|
35
|
-
* Function to lookup custom renderers for specific properties.
|
|
36
|
-
*/
|
|
37
|
-
fieldProvider?: FormFieldProvider;
|
|
38
|
-
/**
|
|
39
|
-
* Typename of the ref type that the create props apply to.
|
|
40
|
-
* When set, createOptionLabel/createOptionIcon/createInitialValuePath/createFieldMap/onCreate
|
|
41
|
-
* are only passed to ref fields whose typename matches.
|
|
42
|
-
*/
|
|
43
|
-
createTypename?: string;
|
|
44
|
-
} & Pick<FormFieldComponentProps, 'autoFocus' | 'readonly' | 'layout'> & Pick<RefFieldProps, 'createOptionLabel' | 'createOptionIcon' | 'createInitialValuePath' | 'createFieldMap' | 'db' | 'useType' | 'getOptions' | 'onCreate'>;
|
|
45
|
-
export declare function FormField(props: FormFieldProps): React.JSX.Element | null;
|
|
46
|
-
export declare namespace FormField {
|
|
47
|
-
var displayName: string;
|
|
48
|
-
}
|
|
49
|
-
export declare const IconBlock: ({ inline, ...props }: IconButtonProps & {
|
|
50
|
-
inline?: boolean;
|
|
51
|
-
}) => React.JSX.Element;
|
|
52
|
-
//# sourceMappingURL=FormField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAIvC,OAAO,EAAc,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EASL,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;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;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;IAElC;;;;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,SAAS,GACT,YAAY,GACZ,UAAU,CACb,CAAC;kCAEsB,KAAK,EAAE,cAAc;;;;AAiM/C,eAAO,MAAM,SAAS,yBAA0B,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,sBAMrF,CAAC"}
|
|
@@ -1,98 +0,0 @@
|
|
|
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, Format } from '@dxos/echo';
|
|
5
|
-
import { ThemedClassName } from '@dxos/react-ui';
|
|
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
|
-
/** Database the form is editing against; populated for fields whose value is an ECHO object/Ref. */
|
|
29
|
-
db?: Database.Database;
|
|
30
|
-
type: SchemaAST.AST;
|
|
31
|
-
format?: Format.TypeFormat;
|
|
32
|
-
readonly?: boolean;
|
|
33
|
-
label: string;
|
|
34
|
-
/**
|
|
35
|
-
* Dotted JSON path of this field within the form values (e.g.
|
|
36
|
-
* `runtime.client.storage.persistent`). Forwarded to `FormFieldLabel` so
|
|
37
|
-
* that it can render the path as a debug hint when the enclosing
|
|
38
|
-
* `Form.Root` has `debug` enabled.
|
|
39
|
-
*/
|
|
40
|
-
jsonPath?: string;
|
|
41
|
-
placeholder?: string;
|
|
42
|
-
autoFocus?: boolean;
|
|
43
|
-
layout?: Presentation;
|
|
44
|
-
} & FormFieldStateProps<T>;
|
|
45
|
-
export type FormFieldComponent = FC<FormFieldComponentProps>;
|
|
46
|
-
export type FormFieldMap = Record<string, FormFieldComponent>;
|
|
47
|
-
export type FormFieldProvider = (props: {
|
|
48
|
-
prop: string;
|
|
49
|
-
schema: Schema.Schema<any>;
|
|
50
|
-
fieldProps: FormFieldComponentProps;
|
|
51
|
-
}) => ReactElement | null | undefined;
|
|
52
|
-
export type FormFieldLabelProps = ThemedClassName<{
|
|
53
|
-
asChild?: boolean;
|
|
54
|
-
error?: string;
|
|
55
|
-
/**
|
|
56
|
-
* JSON path of the field this label describes (e.g. `runtime.client.storage.persistent`).
|
|
57
|
-
* Surfaced as a hover tooltip on the label when the enclosing `Form.Root`
|
|
58
|
-
* has `tooltips` enabled (the default) -- useful for spotting which field
|
|
59
|
-
* maps to which path when authoring schemas or filing bugs against a form.
|
|
60
|
-
* Callers can supply the path unconditionally; the label suppresses the
|
|
61
|
-
* tooltip when `Form.Root tooltips={false}`.
|
|
62
|
-
*/
|
|
63
|
-
path?: string;
|
|
64
|
-
/**
|
|
65
|
-
* Trailing button rendered at the end of the label row (third grid column).
|
|
66
|
-
* Used by nested-object field sets to surface a collapse toggle.
|
|
67
|
-
*/
|
|
68
|
-
button?: ReactNode;
|
|
69
|
-
onClick?: () => void;
|
|
70
|
-
} & Pick<FormFieldComponentProps, 'label' | 'readonly'>>;
|
|
71
|
-
export declare function FormFieldLabel({ classNames, label, error, readonly, asChild, path, button, onClick }: FormFieldLabelProps): React.JSX.Element;
|
|
72
|
-
export declare namespace FormFieldLabel {
|
|
73
|
-
var displayName: string;
|
|
74
|
-
}
|
|
75
|
-
export type FormFieldWrapperProps<T = any> = Pick<FormFieldComponentProps, 'readonly' | 'label' | 'layout' | 'getStatus' | 'getValue' | 'jsonPath' | 'format'> & {
|
|
76
|
-
children?: (props: {
|
|
77
|
-
value: T;
|
|
78
|
-
}) => ReactNode;
|
|
79
|
-
};
|
|
80
|
-
export declare const FormFieldWrapper: <T>(props: FormFieldWrapperProps<T>) => React.JSX.Element | null;
|
|
81
|
-
type FormFieldErrorState = {
|
|
82
|
-
error: Error | undefined;
|
|
83
|
-
};
|
|
84
|
-
type FormFieldErrorBoundaryProps = PropsWithChildren<{
|
|
85
|
-
path?: (string | number)[];
|
|
86
|
-
}>;
|
|
87
|
-
export declare class FormFieldErrorBoundary extends Component<FormFieldErrorBoundaryProps, FormFieldErrorState> {
|
|
88
|
-
static getDerivedStateFromError(error: Error): {
|
|
89
|
-
error: Error;
|
|
90
|
-
};
|
|
91
|
-
state: {
|
|
92
|
-
error: undefined;
|
|
93
|
-
};
|
|
94
|
-
componentDidUpdate(prevProps: FormFieldErrorBoundaryProps): void;
|
|
95
|
-
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;
|
|
96
|
-
private resetError;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=FormFieldComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormFieldComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldSet.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormFieldSet.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,EAAE,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC1E;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,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,SAAS,GACT,YAAY,GACZ,UAAU,CACb,CAAC;qCAKyB,EAC3B,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,UAAU,EACV,MAAM,EACN,UAAgC,EAChC,GAAG,KAAK,EACT,EAAE,iBAAiB,CAAC,GAAG,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A standalone context for the `tooltips` flag (Form.Root's only label
|
|
3
|
-
* decoration today: a JSON-path hover tooltip rendered by
|
|
4
|
-
* `FormFieldLabel`).
|
|
5
|
-
*
|
|
6
|
-
* Lives in its own module so that `FormFieldComponent.tsx` -- imported at
|
|
7
|
-
* the top of `Form.tsx` -- can read the flag without re-importing from
|
|
8
|
-
* `Form.tsx`. That round-trip used to create a circular module-eval
|
|
9
|
-
* dependency that intermittently hit a TDZ ("Cannot access 'FormFieldLabel'
|
|
10
|
-
* before initialization") in browser-mode storybook tests.
|
|
11
|
-
*
|
|
12
|
-
* Defaults to `true` both when `Form.Root` doesn't pass an explicit value
|
|
13
|
-
* AND when there is no enclosing `Form.Root` (e.g. `FormFieldWrapper`
|
|
14
|
-
* stories that render an input without a Form provider).
|
|
15
|
-
*/
|
|
16
|
-
export declare const FormTooltipsContext: import("react").Context<boolean>;
|
|
17
|
-
/** Returns whether the enclosing `Form.Root` has field tooltips enabled. */
|
|
18
|
-
export declare const useFormTooltips: () => boolean;
|
|
19
|
-
//# sourceMappingURL=FormTooltipsContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormTooltipsContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/Form/FormTooltipsContext.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,kCAA+B,CAAC;AAEhE,4EAA4E;AAC5E,eAAO,MAAM,eAAe,QAAO,OAA0C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/FormLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAO9D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC;AAEtH,KAAK,kBAAkB,GAAG,IAAI,CAC5B,cAAc,EACd,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAC7E,GAAG;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;CACtC,CAAC;mCAcyB,EACzB,MAAM,EACN,QAAQ,EACR,IAA0B,EAC1B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,UAAU,EACV,GAAG,KAAK,EACT,EAAE,eAAe;;;;AAyElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,4CAA4C;IAC5C,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;CAC3B,CAAC;AA4BF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,WAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,MAAM,KAAG,mBAAmB,GAAG,SA8BnG,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.stories.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/FormLayout.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,EAA2B,IAAI,EAAE,MAAM,YAAY,CAAC;AAiB3D;;;;;GAKG;AACH,QAAA,MAAM,MAAM;;;;;;;;;wBAS0D,CAAC;AAEvE,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAoFtD,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAwBF,QAAA,MAAM,IAAI;;mCAtBkC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC;eAEd,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAElC,mGAAmG;AACnG,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,EAAE,KAI9B,CAAC;AAwCF,eAAO,MAAM,eAAe,EAAE,KAE7B,CAAC;AAqCF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,EAAE,KAE/B,CAAC;AAwIF,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.stories.test.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/FormLayout.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.test.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/FormLayout.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Annotation carrying one or more named `FormLayout` DSL templates that
|
|
3
|
-
* control how `Form.FieldSet` / `Form.Layout` arrange a schema's fields.
|
|
4
|
-
* Callers select a variant via the `name` prop; the implicit name is
|
|
5
|
-
* `DEFAULT_LAYOUT_NAME` (`'default'`).
|
|
6
|
-
*
|
|
7
|
-
* Templates use a minimal XML grammar — see `parser.ts`. Example:
|
|
8
|
-
*
|
|
9
|
-
* FormLayoutAnnotation.set({
|
|
10
|
-
* default: `
|
|
11
|
-
* <grid cols="2">
|
|
12
|
-
* <field name="origin"/>
|
|
13
|
-
* <field name="destination"/>
|
|
14
|
-
* <field name="provider" span="2"/>
|
|
15
|
-
* </grid>
|
|
16
|
-
* `,
|
|
17
|
-
* card: `
|
|
18
|
-
* <grid cols="1">
|
|
19
|
-
* <field name="provider"/>
|
|
20
|
-
* <field name="number"/>
|
|
21
|
-
* </grid>
|
|
22
|
-
* `,
|
|
23
|
-
* })
|
|
24
|
-
*/
|
|
25
|
-
export declare const FormLayoutAnnotationId: unique symbol;
|
|
26
|
-
export type FormLayoutMap = Record<string, string>;
|
|
27
|
-
export declare const FormLayoutAnnotation: import("@dxos/echo/internal").AnnotationHelper<FormLayoutMap>;
|
|
28
|
-
/** Name used when no explicit variant is requested. */
|
|
29
|
-
export declare const DEFAULT_LAYOUT_NAME = "default";
|
|
30
|
-
//# sourceMappingURL=annotation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/annotation.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,sBAAsB,eAAsD,CAAC;AAE1F,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,oBAAoB,+DAAgE,CAAC;AAElG,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/parser.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,GAC1F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9E,qBAAa,gBAAiB,SAAQ,KAAK;IAIvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAH5B,QAAQ,CAAC,IAAI,sBAAsB;IACnC,YACE,OAAO,EAAE,MAAM,EACN,QAAQ,CAAC,EAAE,MAAM,YAAA,EAG3B;CACF;AAuED,0FAA0F;AAC1F,eAAO,MAAM,WAAW,aAAc,MAAM,KAAG,UA+D9C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/Layout/parser.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
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;AAU3C,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,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;;;;AAiHlB;;;GAGG;AAEH,eAAO,MAAM,eAAe,SAAU,SAAS,CAAC,GAAG,KAAG,GAsBrD,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type FormFieldComponentProps } from '../FormFieldComponent';
|
|
3
|
-
export declare const DateField: ({ type, format, readonly, placeholder: _placeholder, onValueChange, onBlur: _onBlur, ...props }: FormFieldComponentProps<string>) => React.JSX.Element;
|
|
4
|
-
//# sourceMappingURL=DateField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/DateField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAK3C,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,uBAAuB,CAAC;AAoCvF,eAAO,MAAM,SAAS,oGAQnB,uBAAuB,CAAC,MAAM,CAAC,sBA8CjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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,mBAAmB,CAAC;AAM/D,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,6FAUvB,uBAAuB,CAAC,QAAQ,CAAC,6BAiFnC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InlineRefField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/InlineRefField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAapD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,UAAW,aAAa,6BAqDlD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/MarkdownField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAWpD,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAKrF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,sGAWvB,uBAAuB,6BAgDzB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownField.stories.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/MarkdownField.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA4GjE,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOM,CAAC;eAEF,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,KA+CpC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAY1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type FormFieldComponentProps } from '../FormFieldComponent';
|
|
3
|
-
export declare const NumberField: ({ type, readonly, placeholder, getValue, onValueChange, onBlur, ...props }: FormFieldComponentProps<number>) => React.JSX.Element;
|
|
4
|
-
//# sourceMappingURL=NumberField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Form/fields/NumberField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAKhE,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,uBAAuB,CAAC;AAEvF,eAAO,MAAM,WAAW,+EAQrB,uBAAuB,CAAC,MAAM,CAAC,sBAwDjC,CAAC"}
|