@dxos/react-ui-form 0.7.2 → 0.7.3-staging.971cd8d
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 +49 -39
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +49 -39
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +49 -39
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts +2 -2
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.d.ts +3 -2
- package/dist/types/src/components/Form/Form.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.stories.d.ts +9 -5
- package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/deprecated/Form.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/useForm.d.ts +12 -5
- package/dist/types/src/hooks/useForm.d.ts.map +1 -1
- package/package.json +23 -22
- package/src/components/FieldEditor/FieldEditor.stories.tsx +3 -3
- package/src/components/FieldEditor/FieldEditor.tsx +8 -8
- package/src/components/Form/Form.stories.tsx +41 -11
- package/src/components/Form/Form.tsx +23 -12
- package/src/components/ViewEditor/ViewEditor.tsx +8 -7
- package/src/components/deprecated/Form.stories.tsx +4 -4
- package/src/hooks/useForm.ts +29 -14
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/react-ui-form/src/translations.ts":{"bytes":5683,"imports":[],"format":"esm"},"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx":{"bytes":4795,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/components/deprecated/index.ts":{"bytes":520,"imports":[{"path":"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx","kind":"import-statement","original":"./FormInput"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Input.tsx":{"bytes":3849,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Defaults.tsx":{"bytes":11785,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Custom.tsx":{"bytes":6401,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/factory.tsx":{"bytes":2489,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Custom.tsx","kind":"import-statement","original":"./Custom"},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"}],"format":"esm"},"packages/ui/react-ui-form/src/hooks/useForm.ts":{"bytes":19494,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/hooks/index.ts":{"bytes":502,"imports":[{"path":"packages/ui/react-ui-form/src/hooks/useForm.ts","kind":"import-statement","original":"./useForm"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Form.tsx":{"bytes":21560,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"},{"path":"packages/ui/react-ui-form/src/components/Form/factory.tsx","kind":"import-statement","original":"./factory"},{"path":"packages/ui/react-ui-form/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/index.ts":{"bytes":760,"imports":[{"path":"packages/ui/react-ui-form/src/components/Form/Form.tsx","kind":"import-statement","original":"./Form"},{"path":"packages/ui/react-ui-form/src/components/Form/Custom.tsx","kind":"import-statement","original":"./Custom"},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"}],"format":"esm"},"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx":{"bytes":17958,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"../Form"}],"format":"esm"},"packages/ui/react-ui-form/src/components/FieldEditor/index.ts":{"bytes":531,"imports":[{"path":"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx","kind":"import-statement","original":"./FieldEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx":{"bytes":16911,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"packages/ui/react-ui-form/src/components/FieldEditor/index.ts","kind":"import-statement","original":"../FieldEditor"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"../Form"}],"format":"esm"},"packages/ui/react-ui-form/src/components/ViewEditor/index.ts":{"bytes":525,"imports":[{"path":"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx","kind":"import-statement","original":"./ViewEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/components/index.ts":{"bytes":787,"imports":[{"path":"packages/ui/react-ui-form/src/components/deprecated/index.ts","kind":"import-statement","original":"./deprecated"},{"path":"packages/ui/react-ui-form/src/components/FieldEditor/index.ts","kind":"import-statement","original":"./FieldEditor"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"./Form"},{"path":"packages/ui/react-ui-form/src/components/ViewEditor/index.ts","kind":"import-statement","original":"./ViewEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/util/field.ts":{"bytes":12238,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/util/formatting.ts":{"bytes":12559,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/util/index.ts":{"bytes":589,"imports":[{"path":"packages/ui/react-ui-form/src/util/field.ts","kind":"import-statement","original":"./field"},{"path":"packages/ui/react-ui-form/src/util/formatting.ts","kind":"import-statement","original":"./formatting"}],"format":"esm"},"packages/ui/react-ui-form/src/index.ts":{"bytes":916,"imports":[{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/ui/react-ui-form/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-form/src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"packages/ui/react-ui-form/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-form/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":69127},"packages/ui/react-ui-form/dist/lib/node/index.cjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["BooleanInput","DeprecatedFormInput","FieldEditor","Form","GeiPointInput","InputHeader","NumberInput","SelectInput","TextInput","ViewEditor","cellClassesForFieldType","cellClassesForRowSelection","formatForDisplay","formatForEditing","parseValue","pathNotUniqueError","translations","useForm"],"entryPoint":"packages/ui/react-ui-form/src/index.ts","inputs":{"packages/ui/react-ui-form/src/translations.ts":{"bytesInOutput":1666},"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx":{"bytesInOutput":1121},"packages/ui/react-ui-form/src/components/deprecated/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx":{"bytesInOutput":4175},"packages/ui/react-ui-form/src/components/Form/Form.tsx":{"bytesInOutput":5036},"packages/ui/react-ui-form/src/components/Form/Defaults.tsx":{"bytesInOutput":2997},"packages/ui/react-ui-form/src/components/Form/Input.tsx":{"bytesInOutput":737},"packages/ui/react-ui-form/src/components/Form/factory.tsx":{"bytesInOutput":332},"packages/ui/react-ui-form/src/components/Form/Custom.tsx":{"bytesInOutput":1388},"packages/ui/react-ui-form/src/hooks/useForm.ts":{"bytesInOutput":3562},"packages/ui/react-ui-form/src/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/Form/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/FieldEditor/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx":{"bytesInOutput":4295},"packages/ui/react-ui-form/src/components/ViewEditor/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/util/field.ts":{"bytesInOutput":2809},"packages/ui/react-ui-form/src/util/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/util/formatting.ts":{"bytesInOutput":2779}},"bytes":32255}}}
|
|
1
|
+
{"inputs":{"packages/ui/react-ui-form/src/translations.ts":{"bytes":5683,"imports":[],"format":"esm"},"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx":{"bytes":4795,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/components/deprecated/index.ts":{"bytes":520,"imports":[{"path":"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx","kind":"import-statement","original":"./FormInput"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Input.tsx":{"bytes":3849,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Defaults.tsx":{"bytes":11785,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Custom.tsx":{"bytes":6401,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/factory.tsx":{"bytes":2489,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Custom.tsx","kind":"import-statement","original":"./Custom"},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"}],"format":"esm"},"packages/ui/react-ui-form/src/hooks/useForm.ts":{"bytes":20364,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/hooks/index.ts":{"bytes":502,"imports":[{"path":"packages/ui/react-ui-form/src/hooks/useForm.ts","kind":"import-statement","original":"./useForm"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/Form.tsx":{"bytes":22191,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"},{"path":"packages/ui/react-ui-form/src/components/Form/factory.tsx","kind":"import-statement","original":"./factory"},{"path":"packages/ui/react-ui-form/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-form/src/components/Form/index.ts":{"bytes":760,"imports":[{"path":"packages/ui/react-ui-form/src/components/Form/Form.tsx","kind":"import-statement","original":"./Form"},{"path":"packages/ui/react-ui-form/src/components/Form/Custom.tsx","kind":"import-statement","original":"./Custom"},{"path":"packages/ui/react-ui-form/src/components/Form/Defaults.tsx","kind":"import-statement","original":"./Defaults"},{"path":"packages/ui/react-ui-form/src/components/Form/Input.tsx","kind":"import-statement","original":"./Input"}],"format":"esm"},"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx":{"bytes":17911,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"../Form"}],"format":"esm"},"packages/ui/react-ui-form/src/components/FieldEditor/index.ts":{"bytes":531,"imports":[{"path":"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx","kind":"import-statement","original":"./FieldEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx":{"bytes":16960,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"packages/ui/react-ui-form/src/components/FieldEditor/index.ts","kind":"import-statement","original":"../FieldEditor"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"../Form"}],"format":"esm"},"packages/ui/react-ui-form/src/components/ViewEditor/index.ts":{"bytes":525,"imports":[{"path":"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx","kind":"import-statement","original":"./ViewEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/components/index.ts":{"bytes":787,"imports":[{"path":"packages/ui/react-ui-form/src/components/deprecated/index.ts","kind":"import-statement","original":"./deprecated"},{"path":"packages/ui/react-ui-form/src/components/FieldEditor/index.ts","kind":"import-statement","original":"./FieldEditor"},{"path":"packages/ui/react-ui-form/src/components/Form/index.ts","kind":"import-statement","original":"./Form"},{"path":"packages/ui/react-ui-form/src/components/ViewEditor/index.ts","kind":"import-statement","original":"./ViewEditor"}],"format":"esm"},"packages/ui/react-ui-form/src/util/field.ts":{"bytes":12238,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/util/formatting.ts":{"bytes":12559,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-form/src/util/index.ts":{"bytes":589,"imports":[{"path":"packages/ui/react-ui-form/src/util/field.ts","kind":"import-statement","original":"./field"},{"path":"packages/ui/react-ui-form/src/util/formatting.ts","kind":"import-statement","original":"./formatting"}],"format":"esm"},"packages/ui/react-ui-form/src/index.ts":{"bytes":916,"imports":[{"path":"packages/ui/react-ui-form/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/ui/react-ui-form/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-form/src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"packages/ui/react-ui-form/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-form/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":69968},"packages/ui/react-ui-form/dist/lib/node/index.cjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["BooleanInput","DeprecatedFormInput","FieldEditor","Form","GeiPointInput","InputHeader","NumberInput","SelectInput","TextInput","ViewEditor","cellClassesForFieldType","cellClassesForRowSelection","formatForDisplay","formatForEditing","parseValue","pathNotUniqueError","translations","useForm"],"entryPoint":"packages/ui/react-ui-form/src/index.ts","inputs":{"packages/ui/react-ui-form/src/translations.ts":{"bytesInOutput":1666},"packages/ui/react-ui-form/src/components/deprecated/FormInput.tsx":{"bytesInOutput":1121},"packages/ui/react-ui-form/src/components/deprecated/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx":{"bytesInOutput":4164},"packages/ui/react-ui-form/src/components/Form/Form.tsx":{"bytesInOutput":5122},"packages/ui/react-ui-form/src/components/Form/Defaults.tsx":{"bytesInOutput":2997},"packages/ui/react-ui-form/src/components/Form/Input.tsx":{"bytesInOutput":737},"packages/ui/react-ui-form/src/components/Form/factory.tsx":{"bytesInOutput":332},"packages/ui/react-ui-form/src/components/Form/Custom.tsx":{"bytesInOutput":1388},"packages/ui/react-ui-form/src/hooks/useForm.ts":{"bytesInOutput":3723},"packages/ui/react-ui-form/src/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/Form/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/FieldEditor/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/components/ViewEditor/ViewEditor.tsx":{"bytesInOutput":4320},"packages/ui/react-ui-form/src/components/ViewEditor/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/util/field.ts":{"bytesInOutput":2809},"packages/ui/react-ui-form/src/util/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-form/src/util/formatting.ts":{"bytesInOutput":2779}},"bytes":32516}}}
|
|
@@ -254,7 +254,7 @@ import { invariant } from "@dxos/invariant";
|
|
|
254
254
|
import { log } from "@dxos/log";
|
|
255
255
|
import { validateSchema } from "@dxos/schema";
|
|
256
256
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui-form/src/hooks/useForm.ts";
|
|
257
|
-
var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid,
|
|
257
|
+
var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, onSave }) => {
|
|
258
258
|
const [values, setValues] = useState(initialValues);
|
|
259
259
|
useEffect(() => {
|
|
260
260
|
setValues(initialValues);
|
|
@@ -264,6 +264,7 @@ var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, on
|
|
|
264
264
|
const [touched, setTouched] = useState(createKeySet(initialValues, false));
|
|
265
265
|
const [changed, setChanged] = useState(createKeySet(initialValues, false));
|
|
266
266
|
const [errors, setErrors] = useState({});
|
|
267
|
+
const [saving, setSaving] = useState(false);
|
|
267
268
|
const validate = useCallback((values2) => {
|
|
268
269
|
let errors2 = validateSchema(schema, values2) ?? [];
|
|
269
270
|
if (errors2.length === 0 && onValidate) {
|
|
@@ -288,21 +289,27 @@ var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, on
|
|
|
288
289
|
values,
|
|
289
290
|
schemaDirty
|
|
290
291
|
]);
|
|
291
|
-
const
|
|
292
|
+
const canSave = useMemo(() => !saving && Object.keys(values).every((property) => touched[property] === false || !errors[property]), [
|
|
292
293
|
values,
|
|
293
294
|
touched,
|
|
294
|
-
errors
|
|
295
|
+
errors,
|
|
296
|
+
saving
|
|
295
297
|
]);
|
|
296
|
-
const
|
|
298
|
+
const handleSave = useCallback(async () => {
|
|
297
299
|
if (validate(values)) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
300
|
+
setSaving(true);
|
|
301
|
+
try {
|
|
302
|
+
await onSave?.(values, {
|
|
303
|
+
changed
|
|
304
|
+
});
|
|
305
|
+
} finally {
|
|
306
|
+
setSaving(false);
|
|
307
|
+
}
|
|
301
308
|
}
|
|
302
309
|
}, [
|
|
303
310
|
values,
|
|
304
311
|
validate,
|
|
305
|
-
|
|
312
|
+
onSave
|
|
306
313
|
]);
|
|
307
314
|
const getStatus = useCallback((property) => ({
|
|
308
315
|
status: errors[property] ? "error" : void 0,
|
|
@@ -323,7 +330,7 @@ var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, on
|
|
|
323
330
|
} catch (err) {
|
|
324
331
|
log.catch(err, void 0, {
|
|
325
332
|
F: __dxlog_file,
|
|
326
|
-
L:
|
|
333
|
+
L: 180,
|
|
327
334
|
S: void 0,
|
|
328
335
|
C: (f, a) => f(...a)
|
|
329
336
|
});
|
|
@@ -366,8 +373,8 @@ var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, on
|
|
|
366
373
|
errors,
|
|
367
374
|
touched,
|
|
368
375
|
changed,
|
|
369
|
-
|
|
370
|
-
|
|
376
|
+
canSave,
|
|
377
|
+
handleSave,
|
|
371
378
|
// Field utils.
|
|
372
379
|
getStatus,
|
|
373
380
|
getValue,
|
|
@@ -378,7 +385,7 @@ var useForm = ({ schema, initialValues, onValuesChanged, onValidate, onValid, on
|
|
|
378
385
|
var createKeySet = (obj, value) => {
|
|
379
386
|
invariant(obj, void 0, {
|
|
380
387
|
F: __dxlog_file,
|
|
381
|
-
L:
|
|
388
|
+
L: 231,
|
|
382
389
|
S: void 0,
|
|
383
390
|
A: [
|
|
384
391
|
"obj",
|
|
@@ -402,19 +409,19 @@ var flatMap = (errors) => {
|
|
|
402
409
|
// packages/ui/react-ui-form/src/components/Form/Form.tsx
|
|
403
410
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-form/src/components/Form/Form.tsx";
|
|
404
411
|
var padding = "px-2";
|
|
405
|
-
var Form = ({ classNames, schema, values: initialValues, path = [], readonly, filter, sort, autoSave, onValuesChanged, onValidate,
|
|
412
|
+
var Form = ({ classNames, schema, values: initialValues, path = [], readonly, filter, sort, autoSave, testId, onValuesChanged, onValidate, onSave, onCancel, Custom }) => {
|
|
406
413
|
const { t } = useTranslation2(translationKey);
|
|
407
|
-
const onValid = useMemo2(() => autoSave ?
|
|
414
|
+
const onValid = useMemo2(() => autoSave ? onSave : void 0, [
|
|
408
415
|
autoSave,
|
|
409
|
-
|
|
416
|
+
onSave
|
|
410
417
|
]);
|
|
411
|
-
const {
|
|
418
|
+
const { canSave, values, errors, handleSave, ...inputProps } = useForm({
|
|
412
419
|
schema,
|
|
413
420
|
initialValues,
|
|
414
421
|
onValuesChanged,
|
|
415
422
|
onValidate,
|
|
416
423
|
onValid,
|
|
417
|
-
|
|
424
|
+
onSave
|
|
418
425
|
});
|
|
419
426
|
const properties = useMemo2(() => {
|
|
420
427
|
const props = getSchemaProperties(schema.ast, values);
|
|
@@ -435,7 +442,7 @@ var Form = ({ classNames, schema, values: initialValues, path = [], readonly, fi
|
|
|
435
442
|
errors
|
|
436
443
|
}, {
|
|
437
444
|
F: __dxlog_file2,
|
|
438
|
-
L:
|
|
445
|
+
L: 101,
|
|
439
446
|
S: void 0,
|
|
440
447
|
C: (f, a) => f(...a)
|
|
441
448
|
});
|
|
@@ -445,14 +452,15 @@ var Form = ({ classNames, schema, values: initialValues, path = [], readonly, fi
|
|
|
445
452
|
]);
|
|
446
453
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
447
454
|
role: "form",
|
|
448
|
-
className: mx("flex flex-col w-full gap-2 py-2", classNames)
|
|
455
|
+
className: mx("flex flex-col w-full gap-2 py-2", classNames),
|
|
456
|
+
"data-testid": testId
|
|
449
457
|
}, properties.map((property) => {
|
|
450
458
|
const { ast, name, type, format, title, description, examples, options } = property;
|
|
451
459
|
const key = [
|
|
452
460
|
...path,
|
|
453
461
|
name
|
|
454
462
|
];
|
|
455
|
-
const label =
|
|
463
|
+
const label = title ?? pipe(name, capitalize);
|
|
456
464
|
const placeholder = examples?.length ? `Example: "${examples[0]}"` : description;
|
|
457
465
|
let InputComponent = Custom?.[key.join(".")];
|
|
458
466
|
if (!InputComponent) {
|
|
@@ -504,7 +512,7 @@ var Form = ({ classNames, schema, values: initialValues, path = [], readonly, fi
|
|
|
504
512
|
type
|
|
505
513
|
}, {
|
|
506
514
|
F: __dxlog_file2,
|
|
507
|
-
L:
|
|
515
|
+
L: 165,
|
|
508
516
|
S: void 0,
|
|
509
517
|
C: (f, a) => f(...a)
|
|
510
518
|
});
|
|
@@ -523,28 +531,30 @@ var Form = ({ classNames, schema, values: initialValues, path = [], readonly, fi
|
|
|
523
531
|
placeholder,
|
|
524
532
|
...inputProps
|
|
525
533
|
}));
|
|
526
|
-
}).filter(isNotFalsy), (onCancel ||
|
|
534
|
+
}).filter(isNotFalsy), (onCancel || onSave) && !autoSave && /* @__PURE__ */ React5.createElement("div", {
|
|
527
535
|
role: "none",
|
|
528
536
|
className: "flex justify-center"
|
|
529
537
|
}, /* @__PURE__ */ React5.createElement("div", {
|
|
530
538
|
role: "none",
|
|
531
539
|
className: mx(onCancel && !readonly && "grid grid-cols-2 gap-2")
|
|
532
540
|
}, onCancel && !readonly && /* @__PURE__ */ React5.createElement(IconButton, {
|
|
541
|
+
"data-testid": "cancel-button",
|
|
533
542
|
icon: "ph--x--regular",
|
|
534
543
|
label: t("button cancel"),
|
|
535
544
|
onClick: onCancel
|
|
536
|
-
}),
|
|
545
|
+
}), onSave && /* @__PURE__ */ React5.createElement(IconButton, {
|
|
537
546
|
type: "submit",
|
|
538
|
-
|
|
547
|
+
"data-testid": "save-button",
|
|
548
|
+
disabled: !canSave,
|
|
539
549
|
icon: "ph--check--regular",
|
|
540
550
|
label: t("button save"),
|
|
541
|
-
onClick:
|
|
551
|
+
onClick: handleSave
|
|
542
552
|
}))));
|
|
543
553
|
};
|
|
544
554
|
|
|
545
555
|
// packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx
|
|
546
556
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-form/src/components/FieldEditor/FieldEditor.tsx";
|
|
547
|
-
var FieldEditor = ({ view, projection, field, registry,
|
|
557
|
+
var FieldEditor = ({ view, projection, field, registry, onSave, onCancel }) => {
|
|
548
558
|
const { t } = useTranslation3(translationKey);
|
|
549
559
|
const [props, setProps] = useState2(projection.getFieldProjection(field.id).props);
|
|
550
560
|
useEffect3(() => setProps(projection.getFieldProjection(field.id).props), [
|
|
@@ -615,22 +625,22 @@ var FieldEditor = ({ view, projection, field, registry, onClose, onCancel }) =>
|
|
|
615
625
|
view.fields,
|
|
616
626
|
field
|
|
617
627
|
]);
|
|
618
|
-
const
|
|
628
|
+
const handleSave = useCallback2((props2) => {
|
|
619
629
|
projection.setFieldProjection({
|
|
620
630
|
field,
|
|
621
631
|
props: props2
|
|
622
632
|
});
|
|
623
|
-
|
|
633
|
+
onSave();
|
|
624
634
|
}, [
|
|
625
635
|
projection,
|
|
626
636
|
field,
|
|
627
|
-
|
|
637
|
+
onSave
|
|
628
638
|
]);
|
|
629
639
|
const handleCancel = useCallback2(() => {
|
|
630
640
|
requestAnimationFrame(() => onCancel?.());
|
|
631
|
-
|
|
641
|
+
onSave();
|
|
632
642
|
}, [
|
|
633
|
-
|
|
643
|
+
onSave
|
|
634
644
|
]);
|
|
635
645
|
if (!fieldSchema) {
|
|
636
646
|
log3.warn("invalid format", {
|
|
@@ -655,7 +665,7 @@ var FieldEditor = ({ view, projection, field, registry, onClose, onCancel }) =>
|
|
|
655
665
|
],
|
|
656
666
|
onValuesChanged: handleValuesChanged,
|
|
657
667
|
onValidate: handleValidate,
|
|
658
|
-
|
|
668
|
+
onSave: handleSave,
|
|
659
669
|
onCancel: handleCancel,
|
|
660
670
|
Custom: {
|
|
661
671
|
["format"]: (props2) => /* @__PURE__ */ React6.createElement(SelectInput, {
|
|
@@ -694,7 +704,7 @@ var ViewMetaSchema = S2.Struct({
|
|
|
694
704
|
name: S2.String.annotations({
|
|
695
705
|
[AST2.TitleAnnotationId]: "View"
|
|
696
706
|
}),
|
|
697
|
-
|
|
707
|
+
typename: Format.DXN.annotations({
|
|
698
708
|
[AST2.TitleAnnotationId]: "Typename"
|
|
699
709
|
})
|
|
700
710
|
}).pipe(S2.mutable);
|
|
@@ -710,16 +720,16 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
710
720
|
name: view.name,
|
|
711
721
|
// TODO(burdon): Need to warn user of possible consequences of editing.
|
|
712
722
|
// TODO(burdon): Settings should have domain name owned by user.
|
|
713
|
-
|
|
723
|
+
typename: view.query.typename
|
|
714
724
|
};
|
|
715
725
|
}, [
|
|
716
726
|
view
|
|
717
727
|
]);
|
|
718
|
-
const handleViewUpdate = useCallback3(({ name,
|
|
728
|
+
const handleViewUpdate = useCallback3(({ name, typename }) => {
|
|
719
729
|
requestAnimationFrame(() => {
|
|
720
730
|
view.name = name;
|
|
721
|
-
view.query.
|
|
722
|
-
schema.updateTypename(
|
|
731
|
+
view.query.typename = typename;
|
|
732
|
+
schema.updateTypename(typename);
|
|
723
733
|
});
|
|
724
734
|
}, [
|
|
725
735
|
view,
|
|
@@ -748,7 +758,7 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
748
758
|
autoSave: true,
|
|
749
759
|
schema: ViewMetaSchema,
|
|
750
760
|
values: viewValues,
|
|
751
|
-
|
|
761
|
+
onSave: handleViewUpdate
|
|
752
762
|
}), /* @__PURE__ */ React7.createElement("div", null, /* @__PURE__ */ React7.createElement("div", {
|
|
753
763
|
role: "none",
|
|
754
764
|
className: "p-2"
|
|
@@ -782,7 +792,7 @@ var ViewEditor = ({ classNames, schema, view, registry, readonly, showHeading =
|
|
|
782
792
|
projection,
|
|
783
793
|
field,
|
|
784
794
|
registry,
|
|
785
|
-
|
|
795
|
+
onSave: handleClose
|
|
786
796
|
}), !readonly && !field && /* @__PURE__ */ React7.createElement("div", {
|
|
787
797
|
className: "flex p-2 justify-center"
|
|
788
798
|
}, /* @__PURE__ */ React7.createElement(IconButton2, {
|