@dxos/react-ui-form 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/lib/browser/index.mjs +2787 -2137
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/translations.mjs +82 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +2787 -2137
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/translations.mjs +84 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts +9 -9
- package/dist/types/src/components/FieldEditor/FieldEditor.d.ts.map +1 -1
- package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts +86 -7
- package/dist/types/src/components/FieldEditor/FieldEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.d.ts +109 -25
- package/dist/types/src/components/Form/Form.d.ts.map +1 -1
- package/dist/types/src/components/Form/Form.stories.d.ts +130 -56
- package/dist/types/src/components/Form/Form.stories.d.ts.map +1 -1
- package/dist/types/src/components/Form/FormField.d.ts +43 -0
- package/dist/types/src/components/Form/FormField.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormFieldComponent.d.ts +79 -0
- package/dist/types/src/components/Form/FormFieldComponent.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormFieldComponent.stories.d.ts +9 -0
- package/dist/types/src/components/Form/FormFieldComponent.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/FormFieldSet.d.ts +15 -0
- package/dist/types/src/components/Form/FormFieldSet.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/ArrayField.d.ts +18 -0
- package/dist/types/src/components/Form/fields/ArrayField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/BooleanField.d.ts +4 -0
- package/dist/types/src/components/Form/fields/BooleanField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/GeoPointField.d.ts +5 -0
- package/dist/types/src/components/Form/fields/GeoPointField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/MarkdownField.d.ts +11 -0
- package/dist/types/src/components/Form/fields/MarkdownField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/MarkdownField.stories.d.ts +83 -0
- package/dist/types/src/components/Form/fields/MarkdownField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/NumberField.d.ts +4 -0
- package/dist/types/src/components/Form/fields/NumberField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/RefField.d.ts +22 -0
- package/dist/types/src/components/Form/fields/RefField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/SelectField.d.ts +10 -0
- package/dist/types/src/components/Form/fields/SelectField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/SelectOptionField.d.ts +5 -0
- package/dist/types/src/components/Form/fields/SelectOptionField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/SelectOptionField.stories.d.ts +84 -0
- package/dist/types/src/components/Form/fields/SelectOptionField.stories.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/TextAreaField.d.ts +4 -0
- package/dist/types/src/components/Form/fields/TextAreaField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/TextField.d.ts +4 -0
- package/dist/types/src/components/Form/fields/TextField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/TupleField.d.ts +6 -0
- package/dist/types/src/components/Form/fields/TupleField.d.ts.map +1 -0
- package/dist/types/src/components/Form/fields/index.d.ts +12 -0
- package/dist/types/src/components/Form/fields/index.d.ts.map +1 -0
- package/dist/types/src/components/Form/index.d.ts +2 -4
- package/dist/types/src/components/Form/index.d.ts.map +1 -1
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts +9 -0
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
- package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts +68 -0
- package/dist/types/src/components/ObjectPicker/ObjectPicker.d.ts.map +1 -0
- package/dist/types/src/components/ObjectPicker/ObjectPicker.stories.d.ts +87 -0
- package/dist/types/src/components/ObjectPicker/ObjectPicker.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectPicker/index.d.ts +2 -0
- package/dist/types/src/components/ObjectPicker/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.d.ts +9 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.d.ts.map +1 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.stories.d.ts +127 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.test.d.ts +2 -0
- package/dist/types/src/components/ObjectProperties/ObjectProperties.test.d.ts.map +1 -0
- package/dist/types/src/components/ObjectProperties/index.d.ts +2 -0
- package/dist/types/src/components/ObjectProperties/index.d.ts.map +1 -0
- package/dist/types/src/components/Settings/Settings.d.ts +51 -0
- package/dist/types/src/components/Settings/Settings.d.ts.map +1 -0
- package/dist/types/src/components/Settings/Settings.stories.d.ts +84 -0
- package/dist/types/src/components/Settings/Settings.stories.d.ts.map +1 -0
- package/dist/types/src/components/Settings/SettingsFieldSet.d.ts +43 -0
- package/dist/types/src/components/Settings/SettingsFieldSet.d.ts.map +1 -0
- package/dist/types/src/components/Settings/SettingsItem.d.ts +16 -0
- package/dist/types/src/components/Settings/SettingsItem.d.ts.map +1 -0
- package/dist/types/src/components/Settings/SettingsSelectField.d.ts +18 -0
- package/dist/types/src/components/Settings/SettingsSelectField.d.ts.map +1 -0
- package/dist/types/src/components/Settings/index.d.ts +4 -0
- package/dist/types/src/components/Settings/index.d.ts.map +1 -0
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts +22 -10
- package/dist/types/src/components/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts +87 -9
- package/dist/types/src/components/ViewEditor/ViewEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +5 -4
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -3
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useFormHandler.d.ts +82 -0
- package/dist/types/src/hooks/useFormHandler.d.ts.map +1 -0
- package/dist/types/src/hooks/useKeyHandler.d.ts +7 -0
- package/dist/types/src/hooks/useKeyHandler.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +65 -54
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/util/field-type.d.ts +19 -0
- package/dist/types/src/util/field-type.d.ts.map +1 -0
- package/dist/types/src/util/field.d.ts +3 -3
- package/dist/types/src/util/field.d.ts.map +1 -1
- package/dist/types/src/util/formatting.d.ts +2 -2
- package/dist/types/src/util/formatting.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +2 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/properties.d.ts +7 -0
- package/dist/types/src/util/properties.d.ts.map +1 -0
- package/dist/types/src/util/refs.d.ts +3 -3
- package/dist/types/src/util/refs.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -46
- package/src/components/FieldEditor/FieldEditor.stories.tsx +52 -31
- package/src/components/FieldEditor/FieldEditor.test.tsx +13 -13
- package/src/components/FieldEditor/FieldEditor.tsx +90 -95
- package/src/components/Form/AUDIT.md +17 -0
- package/src/components/Form/Form.stories.tsx +147 -223
- package/src/components/Form/Form.tsx +376 -95
- package/src/components/Form/FormField.tsx +306 -0
- package/src/components/Form/FormFieldComponent.stories.tsx +65 -0
- package/src/components/Form/FormFieldComponent.tsx +174 -0
- package/src/components/Form/FormFieldSet.tsx +144 -0
- package/src/components/Form/README.md +3 -0
- package/src/components/Form/fields/ArrayField.tsx +159 -0
- package/src/components/Form/fields/BooleanField.tsx +22 -0
- package/src/components/Form/fields/GeoPointField.tsx +121 -0
- package/src/components/Form/fields/MarkdownField.stories.tsx +152 -0
- package/src/components/Form/fields/MarkdownField.tsx +168 -0
- package/src/components/Form/fields/NumberField.tsx +39 -0
- package/src/components/Form/fields/RefField.tsx +229 -0
- package/src/components/Form/fields/SelectField.tsx +65 -0
- package/src/components/Form/fields/SelectOptionField.stories.tsx +66 -0
- package/src/components/Form/{custom/SelectOptionsInput.tsx → fields/SelectOptionField.tsx} +50 -45
- package/src/components/Form/fields/TextAreaField.tsx +38 -0
- package/src/components/Form/fields/TextField.tsx +38 -0
- package/src/components/Form/{custom/TupleInput.tsx → fields/TupleField.tsx} +17 -10
- package/src/components/Form/fields/index.ts +15 -0
- package/src/components/Form/index.ts +3 -4
- package/src/components/ObjectForm/ObjectForm.tsx +114 -0
- package/src/components/{ControlSection → ObjectForm}/index.ts +1 -1
- package/src/components/ObjectPicker/ObjectPicker.stories.tsx +212 -0
- package/src/components/ObjectPicker/ObjectPicker.tsx +194 -0
- package/src/components/ObjectPicker/index.ts +5 -0
- package/src/components/ObjectProperties/ObjectProperties.stories.tsx +362 -0
- package/src/components/ObjectProperties/ObjectProperties.test.tsx +101 -0
- package/src/components/ObjectProperties/ObjectProperties.tsx +141 -0
- package/src/components/ObjectProperties/index.ts +5 -0
- package/src/components/Settings/AUDIT.md +52 -0
- package/src/components/Settings/Settings.stories.tsx +104 -0
- package/src/components/Settings/Settings.tsx +82 -0
- package/src/components/Settings/SettingsFieldSet.tsx +257 -0
- package/src/components/Settings/SettingsItem.tsx +62 -0
- package/src/components/Settings/SettingsSelectField.tsx +59 -0
- package/src/components/Settings/index.ts +7 -0
- package/src/components/ViewEditor/ViewEditor.stories.tsx +145 -61
- package/src/components/ViewEditor/ViewEditor.test.tsx +22 -22
- package/src/components/ViewEditor/ViewEditor.tsx +355 -219
- package/src/components/index.ts +4 -3
- package/src/components/testing.tsx +31 -12
- package/src/hooks/index.ts +2 -3
- package/src/hooks/useFormHandler.ts +380 -0
- package/src/hooks/useKeyHandler.tsx +37 -0
- package/src/index.ts +0 -4
- package/src/translations.ts +70 -58
- package/src/util/field-type.ts +60 -0
- package/src/util/field.ts +33 -43
- package/src/util/formatting.ts +22 -22
- package/src/util/index.ts +2 -1
- package/src/util/properties.ts +18 -0
- package/src/util/refs.ts +17 -19
- package/dist/types/src/components/ControlSection/ControlSection.d.ts +0 -23
- package/dist/types/src/components/ControlSection/ControlSection.d.ts.map +0 -1
- package/dist/types/src/components/ControlSection/ControlSection.stories.d.ts +0 -8
- package/dist/types/src/components/ControlSection/ControlSection.stories.d.ts.map +0 -1
- package/dist/types/src/components/ControlSection/index.d.ts +0 -2
- package/dist/types/src/components/ControlSection/index.d.ts.map +0 -1
- package/dist/types/src/components/Form/ArrayField.d.ts +0 -16
- package/dist/types/src/components/Form/ArrayField.d.ts.map +0 -1
- package/dist/types/src/components/Form/Defaults.d.ts +0 -14
- package/dist/types/src/components/Form/Defaults.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormActions.d.ts +0 -9
- package/dist/types/src/components/Form/FormActions.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormContent.d.ts +0 -57
- package/dist/types/src/components/Form/FormContent.d.ts.map +0 -1
- package/dist/types/src/components/Form/FormContext.d.ts +0 -23
- package/dist/types/src/components/Form/FormContext.d.ts.map +0 -1
- package/dist/types/src/components/Form/Input.d.ts +0 -26
- package/dist/types/src/components/Form/Input.d.ts.map +0 -1
- package/dist/types/src/components/Form/RefField.d.ts +0 -12
- package/dist/types/src/components/Form/RefField.d.ts.map +0 -1
- package/dist/types/src/components/Form/custom/GeoPointInput.d.ts +0 -4
- package/dist/types/src/components/Form/custom/GeoPointInput.d.ts.map +0 -1
- package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts +0 -4
- package/dist/types/src/components/Form/custom/SelectOptionsInput.d.ts.map +0 -1
- package/dist/types/src/components/Form/custom/SelectOptionsInput.stories.d.ts +0 -7
- package/dist/types/src/components/Form/custom/SelectOptionsInput.stories.d.ts.map +0 -1
- package/dist/types/src/components/Form/custom/TupleInput.d.ts +0 -6
- package/dist/types/src/components/Form/custom/TupleInput.d.ts.map +0 -1
- package/dist/types/src/components/Form/custom/index.d.ts +0 -4
- package/dist/types/src/components/Form/custom/index.d.ts.map +0 -1
- package/dist/types/src/components/Form/factory.d.ts +0 -8
- package/dist/types/src/components/Form/factory.d.ts.map +0 -1
- package/dist/types/src/components/deprecated/Form.d.ts +0 -15
- package/dist/types/src/components/deprecated/Form.d.ts.map +0 -1
- package/dist/types/src/components/deprecated/Form.stories.d.ts +0 -13
- package/dist/types/src/components/deprecated/Form.stories.d.ts.map +0 -1
- package/dist/types/src/components/deprecated/FormInput.d.ts +0 -16
- package/dist/types/src/components/deprecated/FormInput.d.ts.map +0 -1
- package/dist/types/src/components/deprecated/index.d.ts +0 -2
- package/dist/types/src/components/deprecated/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useForm.d.ts +0 -67
- package/dist/types/src/hooks/useForm.d.ts.map +0 -1
- package/dist/types/src/hooks/useQueryRefOptions.d.ts +0 -23
- package/dist/types/src/hooks/useQueryRefOptions.d.ts.map +0 -1
- package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts +0 -8
- package/dist/types/src/hooks/useRefQueryLookupHandler.d.ts.map +0 -1
- package/dist/types/src/util/schema.d.ts +0 -3
- package/dist/types/src/util/schema.d.ts.map +0 -1
- package/src/components/ControlSection/ControlSection.stories.tsx +0 -41
- package/src/components/ControlSection/ControlSection.tsx +0 -139
- package/src/components/Form/ArrayField.tsx +0 -124
- package/src/components/Form/Defaults.tsx +0 -203
- package/src/components/Form/FormActions.tsx +0 -53
- package/src/components/Form/FormContent.tsx +0 -240
- package/src/components/Form/FormContext.tsx +0 -110
- package/src/components/Form/Input.tsx +0 -51
- package/src/components/Form/RefField.tsx +0 -213
- package/src/components/Form/custom/GeoPointInput.tsx +0 -72
- package/src/components/Form/custom/SelectOptionsInput.stories.tsx +0 -61
- package/src/components/Form/custom/index.ts +0 -7
- package/src/components/Form/factory.tsx +0 -31
- package/src/components/deprecated/Form.stories.tsx +0 -62
- package/src/components/deprecated/Form.tsx +0 -119
- package/src/components/deprecated/FormInput.tsx +0 -71
- package/src/components/deprecated/index.ts +0 -5
- package/src/hooks/useForm.ts +0 -291
- package/src/hooks/useQueryRefOptions.ts +0 -53
- package/src/hooks/useRefQueryLookupHandler.ts +0 -39
- package/src/util/schema.ts +0 -14
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Obj } from '@dxos/echo';
|
|
3
|
+
import { useClientStory } from '@dxos/react-client/testing';
|
|
4
|
+
export type ObjectPropertiesDebug = {
|
|
5
|
+
/** Live database the story is rendering against. */
|
|
6
|
+
db: ReturnType<typeof useClientStory>['space'] extends infer S ? (S extends {
|
|
7
|
+
db: infer D;
|
|
8
|
+
} ? D : never) : never;
|
|
9
|
+
/** Object whose properties are being edited. */
|
|
10
|
+
object: Obj.Unknown;
|
|
11
|
+
};
|
|
12
|
+
declare const meta: {
|
|
13
|
+
title: string;
|
|
14
|
+
component: any;
|
|
15
|
+
decorators: import("@storybook/react").Decorator[];
|
|
16
|
+
parameters: {
|
|
17
|
+
layout: string;
|
|
18
|
+
translations: [{
|
|
19
|
+
readonly 'en-US': {
|
|
20
|
+
readonly "@dxos/react-ui-form": {
|
|
21
|
+
readonly 'fields.label': 'Fields';
|
|
22
|
+
readonly 'hidden-fields.label': 'Hidden Fields';
|
|
23
|
+
readonly 'empty-readonly-ref-field.label': '(none)';
|
|
24
|
+
readonly 'field-property.label': 'Property';
|
|
25
|
+
readonly 'field-property.placeholder': 'Property name';
|
|
26
|
+
readonly 'field-format.label': 'Type';
|
|
27
|
+
readonly 'field-path.label': 'Field path';
|
|
28
|
+
readonly 'add-item.button': 'Add item';
|
|
29
|
+
readonly 'add-property-button.label': 'Add property';
|
|
30
|
+
readonly 'boolean-input-true.value': 'Yes';
|
|
31
|
+
readonly 'boolean-input-false.value': 'No';
|
|
32
|
+
readonly 'show-field.label': 'Show field';
|
|
33
|
+
readonly 'hide-field.label': 'Hide field';
|
|
34
|
+
readonly 'delete-field.label': 'Delete field';
|
|
35
|
+
readonly 'create-option.label': 'Create';
|
|
36
|
+
readonly 'add-tag.label': 'Add tag';
|
|
37
|
+
readonly 'ref-field-combobox-input.placeholder': 'Search\u2026';
|
|
38
|
+
readonly 'ref-field.placeholder': 'Select\u2026';
|
|
39
|
+
readonly 'ref-field.placeholder_one': 'Select\u2026';
|
|
40
|
+
readonly 'ref-field.placeholder_other': 'Select items\u2026';
|
|
41
|
+
readonly 'example.placeholder': 'Example';
|
|
42
|
+
readonly 'latitude.placeholder': 'Latitude (e.g., 40.7128)';
|
|
43
|
+
readonly 'longitude.placeholder': 'Longitude (e.g., -74.0060)';
|
|
44
|
+
readonly 'cancel-button.label': 'Cancel';
|
|
45
|
+
readonly 'save-button.label': 'Save';
|
|
46
|
+
readonly 'create-text.label': 'Create text';
|
|
47
|
+
readonly 'format.boolean.label': 'Boolean';
|
|
48
|
+
readonly 'format.currency.label': 'Currency';
|
|
49
|
+
readonly 'format.date.label': 'Date';
|
|
50
|
+
readonly 'format.date-time.label': 'DateTime';
|
|
51
|
+
readonly 'format.did.label': 'DID';
|
|
52
|
+
readonly 'format.duration.label': 'Duration';
|
|
53
|
+
readonly 'format.dxn.label': 'DXN';
|
|
54
|
+
readonly 'format.email.label': 'Email';
|
|
55
|
+
readonly 'format.formula.label': 'Formula';
|
|
56
|
+
readonly 'format.hostname.label': 'Hostname';
|
|
57
|
+
readonly 'format.integer.label': 'Integer';
|
|
58
|
+
readonly 'format.json.label': 'JSON';
|
|
59
|
+
readonly 'format.lnglat.label': 'Geopoint';
|
|
60
|
+
readonly 'format.markdown.label': 'Markdown';
|
|
61
|
+
readonly 'format.percent.label': 'Percent';
|
|
62
|
+
readonly 'format.ref.label': 'Reference';
|
|
63
|
+
readonly 'format.regex.label': 'RegExp';
|
|
64
|
+
readonly 'format.string.label': 'String';
|
|
65
|
+
readonly 'format.single-select.label': 'Select';
|
|
66
|
+
readonly 'format.multi-select.label': 'Multi-select';
|
|
67
|
+
readonly 'format.text.label': 'Long text';
|
|
68
|
+
readonly 'format.time.label': 'Time';
|
|
69
|
+
readonly 'format.timestamp.label': 'Timestamp';
|
|
70
|
+
readonly 'format.user.label': 'User';
|
|
71
|
+
readonly 'format.number.label': 'Number';
|
|
72
|
+
readonly 'format.uri.label': 'URI';
|
|
73
|
+
readonly 'format.url.label': 'URL';
|
|
74
|
+
readonly 'format.uuid.label': 'UUID';
|
|
75
|
+
readonly 'latitude.label': 'Latitude';
|
|
76
|
+
readonly 'longitude.label': 'Longitude';
|
|
77
|
+
readonly 'select-option.label': 'Label';
|
|
78
|
+
readonly 'select-option-label.placeholder': 'Option label';
|
|
79
|
+
readonly 'select-option-delete.button': 'Delete';
|
|
80
|
+
readonly 'select-option-add.button': 'Add option';
|
|
81
|
+
readonly 'system-schema.title': 'System type';
|
|
82
|
+
readonly 'system-schema.description': 'System type: cannot add or remove fields.';
|
|
83
|
+
readonly 'remove.button': 'Remove';
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
}];
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export default meta;
|
|
90
|
+
type Story = StoryObj<typeof meta>;
|
|
91
|
+
/**
|
|
92
|
+
* Default Pipeline form — manual exploration. Includes the Tags picker (which
|
|
93
|
+
* is the only ref-array path that currently works end-to-end, by virtue of
|
|
94
|
+
* `Tag.Tag` being special-cased in `ObjectProperties.handleCreate`).
|
|
95
|
+
*/
|
|
96
|
+
export declare const Default: Story;
|
|
97
|
+
/**
|
|
98
|
+
* Tag-creation play. Walks the inline create flow against the Tags picker and
|
|
99
|
+
* leaves the magazine in the post-Save state for assertions to inspect via
|
|
100
|
+
* `OBJECT_PROPERTIES_DEBUG_SYMBOL`.
|
|
101
|
+
*
|
|
102
|
+
* Expected end-state (currently passes):
|
|
103
|
+
* - new Tag.Tag exists in the DB with `label === "PinnedTag"`
|
|
104
|
+
* - `Obj.getMeta(object).tags` includes its DXN.
|
|
105
|
+
*/
|
|
106
|
+
export declare const CreateTagPlay: Story;
|
|
107
|
+
/**
|
|
108
|
+
* Ref-array creation play. Walks Add → Open → Create → Save against
|
|
109
|
+
* `Article.authors`. After the fix, the new Author should be persisted AND
|
|
110
|
+
* wired into `article.authors[0]`. Today it persists to the DB but the array
|
|
111
|
+
* slot stays empty.
|
|
112
|
+
*/
|
|
113
|
+
export declare const CreateRefArrayPlay: Story;
|
|
114
|
+
/**
|
|
115
|
+
* Ref-array creation against a schema with a hidden required field. `Note`
|
|
116
|
+
* mirrors the shape of `Subscription.Feed`: the form omits `backing` (a
|
|
117
|
+
* required `Ref` annotated `FormInputAnnotation.set(false)`) but the schema
|
|
118
|
+
* requires it. Without `omitHiddenFormFields` + `FactoryAnnotation`, the
|
|
119
|
+
* form's validator would reject Save and the popover would never close.
|
|
120
|
+
*
|
|
121
|
+
* Expected end-state after the fix:
|
|
122
|
+
* - new Note exists in DB with a synthesised `backing` ref
|
|
123
|
+
* - `notebook.notes[0]` references the new Note
|
|
124
|
+
* - the create form is gone
|
|
125
|
+
*/
|
|
126
|
+
export declare const CreateHiddenFieldPlay: Story;
|
|
127
|
+
//# sourceMappingURL=ObjectProperties.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectProperties.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/ObjectProperties/ObjectProperties.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAsB,GAAG,EAAkB,MAAM,YAAY,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAsB,MAAM,4BAA4B,CAAC;AAsFhF,MAAM,MAAM,qBAAqB,GAAG;IAClC,oDAAoD;IACpD,EAAE,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;IACjH,gDAAgD;IAChD,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC;CACrB,CAAC;AA8CF,QAAA,MAAM,IAAI;;eAEuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAME,CAAC;eAExB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA4DnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,KAGrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,KAmC3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAkChC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,KA8BnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectProperties.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/ObjectProperties/ObjectProperties.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ObjectProperties/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react';
|
|
2
|
+
import { type Label, type ThemedClassName } from '@dxos/react-ui';
|
|
3
|
+
type SettingsRootProps = ThemedClassName<PropsWithChildren>;
|
|
4
|
+
declare function SettingsRoot({ children, classNames }: SettingsRootProps): React.JSX.Element;
|
|
5
|
+
declare namespace SettingsRoot {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
type SettingsSectionProps = PropsWithChildren<{
|
|
9
|
+
title: Label;
|
|
10
|
+
description?: Label;
|
|
11
|
+
}>;
|
|
12
|
+
declare function SettingsSection({ title, description, children }: SettingsSectionProps): React.JSX.Element;
|
|
13
|
+
declare namespace SettingsSection {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const Settings: {
|
|
17
|
+
Root: {
|
|
18
|
+
({ children, classNames }: SettingsRootProps): React.JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
};
|
|
21
|
+
Viewport: React.ForwardRefExoticComponent<Omit<{}, "className"> & {
|
|
22
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
23
|
+
} & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
Section: {
|
|
25
|
+
({ title, description, children }: SettingsSectionProps): React.JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
Panel: {
|
|
29
|
+
({ classNames, children }: Omit<{
|
|
30
|
+
children?: React.ReactNode | undefined;
|
|
31
|
+
}, "className"> & {
|
|
32
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
33
|
+
}): React.JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
Item: {
|
|
37
|
+
({ title, description, children }: {
|
|
38
|
+
title: Label;
|
|
39
|
+
description?: Label;
|
|
40
|
+
} & {
|
|
41
|
+
children?: React.ReactNode | undefined;
|
|
42
|
+
}): React.JSX.Element;
|
|
43
|
+
displayName: string;
|
|
44
|
+
};
|
|
45
|
+
FieldSet: {
|
|
46
|
+
<T extends Record<string, any>>({ schema, values, onValuesChanged, readonly, fieldMap, visible, sort, pathPrefix, }: import("./SettingsFieldSet").SettingsFieldSetProps<T>): React.JSX.Element;
|
|
47
|
+
displayName: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=Settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/Settings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,KAAK,KAAK,EAAc,KAAK,eAAe,EAAqC,MAAM,gBAAgB,CAAC;AAgBjH,KAAK,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;8BAEtC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,iBAAiB;;;;AA4BjE,KAAK,oBAAoB,GAAG,iBAAiB,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC,CAAC;iCAEsB,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,oBAAoB;;;;AAiB/E,eAAO,MAAM,QAAQ;IACnB,IAAI;mCAnD0C,iBAAiB;;;IAoD/D,QAAQ;;;IACR,OAAO;2CApBkD,oBAAoB;;;IAqB7E,KAAK;;;;;;;;IACL,IAAI;;;;;;;;;IACJ,QAAQ;;;;CACT,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
render: () => React.JSX.Element;
|
|
6
|
+
decorators: import("@storybook/react").Decorator[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
translations: [{
|
|
10
|
+
readonly 'en-US': {
|
|
11
|
+
readonly "@dxos/react-ui-form": {
|
|
12
|
+
readonly 'fields.label': 'Fields';
|
|
13
|
+
readonly 'hidden-fields.label': 'Hidden Fields';
|
|
14
|
+
readonly 'empty-readonly-ref-field.label': '(none)';
|
|
15
|
+
readonly 'field-property.label': 'Property';
|
|
16
|
+
readonly 'field-property.placeholder': 'Property name';
|
|
17
|
+
readonly 'field-format.label': 'Type';
|
|
18
|
+
readonly 'field-path.label': 'Field path';
|
|
19
|
+
readonly 'add-item.button': 'Add item';
|
|
20
|
+
readonly 'add-property-button.label': 'Add property';
|
|
21
|
+
readonly 'boolean-input-true.value': 'Yes';
|
|
22
|
+
readonly 'boolean-input-false.value': 'No';
|
|
23
|
+
readonly 'show-field.label': 'Show field';
|
|
24
|
+
readonly 'hide-field.label': 'Hide field';
|
|
25
|
+
readonly 'delete-field.label': 'Delete field';
|
|
26
|
+
readonly 'create-option.label': 'Create';
|
|
27
|
+
readonly 'add-tag.label': 'Add tag';
|
|
28
|
+
readonly 'ref-field-combobox-input.placeholder': 'Search\u2026';
|
|
29
|
+
readonly 'ref-field.placeholder': 'Select\u2026';
|
|
30
|
+
readonly 'ref-field.placeholder_one': 'Select\u2026';
|
|
31
|
+
readonly 'ref-field.placeholder_other': 'Select items\u2026';
|
|
32
|
+
readonly 'example.placeholder': 'Example';
|
|
33
|
+
readonly 'latitude.placeholder': 'Latitude (e.g., 40.7128)';
|
|
34
|
+
readonly 'longitude.placeholder': 'Longitude (e.g., -74.0060)';
|
|
35
|
+
readonly 'cancel-button.label': 'Cancel';
|
|
36
|
+
readonly 'save-button.label': 'Save';
|
|
37
|
+
readonly 'create-text.label': 'Create text';
|
|
38
|
+
readonly 'format.boolean.label': 'Boolean';
|
|
39
|
+
readonly 'format.currency.label': 'Currency';
|
|
40
|
+
readonly 'format.date.label': 'Date';
|
|
41
|
+
readonly 'format.date-time.label': 'DateTime';
|
|
42
|
+
readonly 'format.did.label': 'DID';
|
|
43
|
+
readonly 'format.duration.label': 'Duration';
|
|
44
|
+
readonly 'format.dxn.label': 'DXN';
|
|
45
|
+
readonly 'format.email.label': 'Email';
|
|
46
|
+
readonly 'format.formula.label': 'Formula';
|
|
47
|
+
readonly 'format.hostname.label': 'Hostname';
|
|
48
|
+
readonly 'format.integer.label': 'Integer';
|
|
49
|
+
readonly 'format.json.label': 'JSON';
|
|
50
|
+
readonly 'format.lnglat.label': 'Geopoint';
|
|
51
|
+
readonly 'format.markdown.label': 'Markdown';
|
|
52
|
+
readonly 'format.percent.label': 'Percent';
|
|
53
|
+
readonly 'format.ref.label': 'Reference';
|
|
54
|
+
readonly 'format.regex.label': 'RegExp';
|
|
55
|
+
readonly 'format.string.label': 'String';
|
|
56
|
+
readonly 'format.single-select.label': 'Select';
|
|
57
|
+
readonly 'format.multi-select.label': 'Multi-select';
|
|
58
|
+
readonly 'format.text.label': 'Long text';
|
|
59
|
+
readonly 'format.time.label': 'Time';
|
|
60
|
+
readonly 'format.timestamp.label': 'Timestamp';
|
|
61
|
+
readonly 'format.user.label': 'User';
|
|
62
|
+
readonly 'format.number.label': 'Number';
|
|
63
|
+
readonly 'format.uri.label': 'URI';
|
|
64
|
+
readonly 'format.url.label': 'URL';
|
|
65
|
+
readonly 'format.uuid.label': 'UUID';
|
|
66
|
+
readonly 'latitude.label': 'Latitude';
|
|
67
|
+
readonly 'longitude.label': 'Longitude';
|
|
68
|
+
readonly 'select-option.label': 'Label';
|
|
69
|
+
readonly 'select-option-label.placeholder': 'Option label';
|
|
70
|
+
readonly 'select-option-delete.button': 'Delete';
|
|
71
|
+
readonly 'select-option-add.button': 'Add option';
|
|
72
|
+
readonly 'system-schema.title': 'System type';
|
|
73
|
+
readonly 'system-schema.description': 'System type: cannot add or remove fields.';
|
|
74
|
+
readonly 'remove.button': 'Remove';
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
}];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
export default meta;
|
|
81
|
+
type Story = StoryObj<typeof meta>;
|
|
82
|
+
export declare const Default: Story;
|
|
83
|
+
export declare const FieldSet: Story;
|
|
84
|
+
//# sourceMappingURL=Settings.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/Settings.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAoC1B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQM,CAAC;eAEF,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AA6CjC,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as SchemaAST from 'effect/SchemaAST';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Props for a custom field renderer.
|
|
5
|
+
* The renderer provides the control only; SettingsItem wrapper is handled by FieldSet.
|
|
6
|
+
*/
|
|
7
|
+
export type SettingsFieldProps<T = any> = {
|
|
8
|
+
value: T;
|
|
9
|
+
onChange: (value: T) => void;
|
|
10
|
+
readonly?: boolean;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Map of property names to either a custom field renderer or a nested field map for struct fields.
|
|
14
|
+
* When a value type `T` is provided, the map shape is checked against the schema's value type.
|
|
15
|
+
*/
|
|
16
|
+
export type SettingsFieldMap<T extends Record<string, any> = Record<string, any>> = {
|
|
17
|
+
[K in keyof T]?: NonNullable<T[K]> extends Record<string, any> ? SettingsFieldMap<NonNullable<T[K]>> : React.FC<SettingsFieldProps<T[K]>>;
|
|
18
|
+
};
|
|
19
|
+
export type SettingsFieldSetProps<T extends Record<string, any> = Record<string, any>> = {
|
|
20
|
+
/** Effect Schema for the settings object. */
|
|
21
|
+
schema: {
|
|
22
|
+
ast: SchemaAST.AST;
|
|
23
|
+
};
|
|
24
|
+
/** Current settings values. */
|
|
25
|
+
values: T;
|
|
26
|
+
/** Callback when any value changes. Receives a new complete object. */
|
|
27
|
+
onValuesChanged?: (values: T) => void;
|
|
28
|
+
/** When true, all controls are disabled. */
|
|
29
|
+
readonly?: boolean;
|
|
30
|
+
/** Map of property names to custom field renderers. Nested objects map to struct sub-fields. */
|
|
31
|
+
fieldMap?: SettingsFieldMap<T>;
|
|
32
|
+
/** Control field visibility. Receives the dotted path (e.g. `'modelDefaults.edge'`) at every level. */
|
|
33
|
+
visible?: (path: string, values: T) => boolean;
|
|
34
|
+
/** Override the order of fields. Fields not listed are appended in schema order. Applied per scope. */
|
|
35
|
+
sort?: string[];
|
|
36
|
+
/** Internal: dot-path prefix used by recursive struct rendering. */
|
|
37
|
+
pathPrefix?: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function SettingsFieldSet<T extends Record<string, any>>({ schema, values, onValuesChanged, readonly, fieldMap, visible, sort, pathPrefix }: SettingsFieldSetProps<T>): React.JSX.Element;
|
|
40
|
+
export declare namespace SettingsFieldSet {
|
|
41
|
+
var displayName: string;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=SettingsFieldSet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsFieldSet.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/SettingsFieldSet.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAA+B,MAAM,OAAO,CAAC;AAYpD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,IAAI;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KACjF,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1D,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACnC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACvF,6CAA6C;IAC7C,MAAM,EAAE;QAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAA;KAAE,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,EAAE,CAAC,CAAC;IAEV,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAEtC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE/B,uGAAuG;IACvG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IAE/C,uGAAuG;IACvG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;yCAM+B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC9D,MAAM,EACN,MAAM,EACN,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,UAAe,EAChB,EAAE,qBAAqB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react';
|
|
2
|
+
import { type Label, type ThemedClassName } from '@dxos/react-ui';
|
|
3
|
+
type SettingsPanelProps = ThemedClassName<PropsWithChildren>;
|
|
4
|
+
export declare function SettingsPanel({ classNames, children }: SettingsPanelProps): React.JSX.Element;
|
|
5
|
+
export declare namespace SettingsPanel {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
type SettingsItemProps = PropsWithChildren<{
|
|
9
|
+
title: Label;
|
|
10
|
+
description?: Label;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function SettingsItem({ title, description, children }: SettingsItemProps): React.JSX.Element;
|
|
13
|
+
export declare namespace SettingsItem {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=SettingsItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/SettingsItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAS,KAAK,KAAK,EAAE,KAAK,eAAe,EAAqC,MAAM,gBAAgB,CAAC;AAY5G,KAAK,kBAAkB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;sCAE/B,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,kBAAkB;;;;AAc1E,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;IACzC,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC,CAAC;qCAE0B,EAAE,KAAK,EAAE,WAAgB,EAAE,QAAQ,EAAE,EAAE,iBAAiB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type SettingsFieldProps } from './SettingsFieldSet';
|
|
3
|
+
export type SelectFieldOption = {
|
|
4
|
+
value: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
};
|
|
7
|
+
export type CreateSelectFieldOptions = {
|
|
8
|
+
/** Options to display. Strings are used as both value and label. */
|
|
9
|
+
options: ReadonlyArray<string | SelectFieldOption>;
|
|
10
|
+
/** Label for the sentinel option that maps to `undefined`. Defaults to `'Default'`. Pass `null` to omit. */
|
|
11
|
+
defaultLabel?: string | null;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Factory for a `SettingsFieldSet` `fieldMap` entry that renders a Select control
|
|
15
|
+
* over a fixed list of options, with an optional sentinel for `undefined`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const createSelectField: ({ options, defaultLabel, }: CreateSelectFieldOptions) => React.FC<SettingsFieldProps<string | undefined>>;
|
|
18
|
+
//# sourceMappingURL=SettingsSelectField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsSelectField.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/SettingsSelectField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,oEAAoE;IACpE,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IACnD,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,+BAG3B,wBAAwB,KAAG,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,GAAG,SAAS,CAAC,CA6B5E,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './Settings';
|
|
2
|
+
export { type SettingsFieldMap, type SettingsFieldProps, type SettingsFieldSetProps } from './SettingsFieldSet';
|
|
3
|
+
export { createSelectField, type CreateSelectFieldOptions, type SelectFieldOption } from './SettingsSelectField';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Settings/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,20 +1,32 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Schema from 'effect/Schema';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { type SchemaRegistry } from '@dxos/echo
|
|
3
|
+
import { QueryAST, type SchemaRegistry } from '@dxos/echo';
|
|
4
|
+
import { View } from '@dxos/echo';
|
|
4
5
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
5
|
-
import { type
|
|
6
|
-
import {
|
|
6
|
+
import { type QueryFormProps } from '@dxos/react-ui-components';
|
|
7
|
+
import { ProjectionModel } from '@dxos/schema';
|
|
8
|
+
import { type FormRootProps } from '../Form';
|
|
7
9
|
export type ViewEditorProps = ThemedClassName<{
|
|
8
10
|
schema: Schema.Schema.AnyNoContext;
|
|
9
|
-
view:
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
view: View.View;
|
|
12
|
+
mode?: 'schema' | 'tag';
|
|
13
|
+
registry?: SchemaRegistry.SchemaRegistry;
|
|
12
14
|
showHeading?: boolean;
|
|
13
|
-
|
|
15
|
+
onQueryChanged?: (query: QueryAST.Query, target?: string) => void;
|
|
14
16
|
onDelete?: (fieldId: string) => void;
|
|
15
|
-
} & Pick<
|
|
17
|
+
} & Pick<QueryFormProps, 'types' | 'tags'> & Pick<FormRootProps<any>, 'readonly' | 'db'>>;
|
|
16
18
|
/**
|
|
17
19
|
* Schema-based object form.
|
|
18
20
|
*/
|
|
19
|
-
export declare const ViewEditor:
|
|
21
|
+
export declare const ViewEditor: React.ForwardRefExoticComponent<Omit<{
|
|
22
|
+
schema: Schema.Schema.AnyNoContext;
|
|
23
|
+
view: View.View;
|
|
24
|
+
mode?: 'schema' | 'tag';
|
|
25
|
+
registry?: SchemaRegistry.SchemaRegistry;
|
|
26
|
+
showHeading?: boolean;
|
|
27
|
+
onQueryChanged?: (query: QueryAST.Query, target?: string) => void;
|
|
28
|
+
onDelete?: (fieldId: string) => void;
|
|
29
|
+
} & Pick<QueryFormProps, "tags" | "types"> & Pick<FormRootProps<any>, "db" | "readonly">, "className"> & {
|
|
30
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
31
|
+
} & React.RefAttributes<ProjectionModel>>;
|
|
20
32
|
//# sourceMappingURL=ViewEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/ViewEditor/ViewEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/ViewEditor/ViewEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAsF,MAAM,OAAO,CAAC;AAE3G,OAAO,EAA4C,QAAQ,EAAO,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIlC,OAAO,EAA8B,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAEL,eAAe,EAIhB,MAAM,cAAc,CAAC;AAMtB,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,eAAe,CAC3C;IACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACnC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAAC,GACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,CAC9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;YAdX,MAAM,CAAC,MAAM,CAAC,YAAY;UAC5B,IAAI,CAAC,IAAI;WACR,QAAQ,GAAG,KAAK;eACZ,cAAc,CAAC,cAAc;kBAC1B,OAAO;qBACJ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI;eACtD,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;;;yCAyKvC,CAAC"}
|
|
@@ -1,17 +1,95 @@
|
|
|
1
|
-
import '@
|
|
2
|
-
import
|
|
3
|
-
import { type
|
|
4
|
-
import {
|
|
1
|
+
import { type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { type View } from '@dxos/echo';
|
|
4
|
+
import { type EchoSchema } from '@dxos/echo/internal';
|
|
5
|
+
import { type ProjectionModel } from '@dxos/schema';
|
|
5
6
|
import { type ViewEditorProps } from './ViewEditor';
|
|
6
7
|
export type ViewEditorDebugObjects = {
|
|
7
8
|
schema: EchoSchema;
|
|
8
|
-
view:
|
|
9
|
-
projection:
|
|
9
|
+
view: View.View;
|
|
10
|
+
projection: ProjectionModel;
|
|
11
|
+
};
|
|
12
|
+
type DefaultStoryProps = Pick<ViewEditorProps, 'readonly' | 'mode'>;
|
|
13
|
+
declare const meta: {
|
|
14
|
+
title: string;
|
|
15
|
+
render: (props: DefaultStoryProps) => React.JSX.Element;
|
|
16
|
+
decorators: import("@storybook/react").Decorator[];
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: string;
|
|
19
|
+
translations: [{
|
|
20
|
+
readonly 'en-US': {
|
|
21
|
+
readonly "@dxos/react-ui-form": {
|
|
22
|
+
readonly 'fields.label': 'Fields';
|
|
23
|
+
readonly 'hidden-fields.label': 'Hidden Fields';
|
|
24
|
+
readonly 'empty-readonly-ref-field.label': '(none)';
|
|
25
|
+
readonly 'field-property.label': 'Property';
|
|
26
|
+
readonly 'field-property.placeholder': 'Property name';
|
|
27
|
+
readonly 'field-format.label': 'Type';
|
|
28
|
+
readonly 'field-path.label': 'Field path';
|
|
29
|
+
readonly 'add-item.button': 'Add item';
|
|
30
|
+
readonly 'add-property-button.label': 'Add property';
|
|
31
|
+
readonly 'boolean-input-true.value': 'Yes';
|
|
32
|
+
readonly 'boolean-input-false.value': 'No';
|
|
33
|
+
readonly 'show-field.label': 'Show field';
|
|
34
|
+
readonly 'hide-field.label': 'Hide field';
|
|
35
|
+
readonly 'delete-field.label': 'Delete field';
|
|
36
|
+
readonly 'create-option.label': 'Create';
|
|
37
|
+
readonly 'add-tag.label': 'Add tag';
|
|
38
|
+
readonly 'ref-field-combobox-input.placeholder': 'Search\u2026';
|
|
39
|
+
readonly 'ref-field.placeholder': 'Select\u2026';
|
|
40
|
+
readonly 'ref-field.placeholder_one': 'Select\u2026';
|
|
41
|
+
readonly 'ref-field.placeholder_other': 'Select items\u2026';
|
|
42
|
+
readonly 'example.placeholder': 'Example';
|
|
43
|
+
readonly 'latitude.placeholder': 'Latitude (e.g., 40.7128)';
|
|
44
|
+
readonly 'longitude.placeholder': 'Longitude (e.g., -74.0060)';
|
|
45
|
+
readonly 'cancel-button.label': 'Cancel';
|
|
46
|
+
readonly 'save-button.label': 'Save';
|
|
47
|
+
readonly 'create-text.label': 'Create text';
|
|
48
|
+
readonly 'format.boolean.label': 'Boolean';
|
|
49
|
+
readonly 'format.currency.label': 'Currency';
|
|
50
|
+
readonly 'format.date.label': 'Date';
|
|
51
|
+
readonly 'format.date-time.label': 'DateTime';
|
|
52
|
+
readonly 'format.did.label': 'DID';
|
|
53
|
+
readonly 'format.duration.label': 'Duration';
|
|
54
|
+
readonly 'format.dxn.label': 'DXN';
|
|
55
|
+
readonly 'format.email.label': 'Email';
|
|
56
|
+
readonly 'format.formula.label': 'Formula';
|
|
57
|
+
readonly 'format.hostname.label': 'Hostname';
|
|
58
|
+
readonly 'format.integer.label': 'Integer';
|
|
59
|
+
readonly 'format.json.label': 'JSON';
|
|
60
|
+
readonly 'format.lnglat.label': 'Geopoint';
|
|
61
|
+
readonly 'format.markdown.label': 'Markdown';
|
|
62
|
+
readonly 'format.percent.label': 'Percent';
|
|
63
|
+
readonly 'format.ref.label': 'Reference';
|
|
64
|
+
readonly 'format.regex.label': 'RegExp';
|
|
65
|
+
readonly 'format.string.label': 'String';
|
|
66
|
+
readonly 'format.single-select.label': 'Select';
|
|
67
|
+
readonly 'format.multi-select.label': 'Multi-select';
|
|
68
|
+
readonly 'format.text.label': 'Long text';
|
|
69
|
+
readonly 'format.time.label': 'Time';
|
|
70
|
+
readonly 'format.timestamp.label': 'Timestamp';
|
|
71
|
+
readonly 'format.user.label': 'User';
|
|
72
|
+
readonly 'format.number.label': 'Number';
|
|
73
|
+
readonly 'format.uri.label': 'URI';
|
|
74
|
+
readonly 'format.url.label': 'URL';
|
|
75
|
+
readonly 'format.uuid.label': 'UUID';
|
|
76
|
+
readonly 'latitude.label': 'Latitude';
|
|
77
|
+
readonly 'longitude.label': 'Longitude';
|
|
78
|
+
readonly 'select-option.label': 'Label';
|
|
79
|
+
readonly 'select-option-label.placeholder': 'Option label';
|
|
80
|
+
readonly 'select-option-delete.button': 'Delete';
|
|
81
|
+
readonly 'select-option-add.button': 'Add option';
|
|
82
|
+
readonly 'system-schema.title': 'System type';
|
|
83
|
+
readonly 'system-schema.description': 'System type: cannot add or remove fields.';
|
|
84
|
+
readonly 'remove.button': 'Remove';
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
}];
|
|
88
|
+
};
|
|
10
89
|
};
|
|
11
|
-
type StoryProps = Pick<ViewEditorProps, 'readonly'>;
|
|
12
|
-
declare const meta: Meta<StoryProps>;
|
|
13
90
|
export default meta;
|
|
14
|
-
type Story = StoryObj<
|
|
91
|
+
type Story = StoryObj<typeof meta>;
|
|
15
92
|
export declare const Default: Story;
|
|
16
93
|
export declare const Readonly: Story;
|
|
94
|
+
export declare const TagQueryMode: Story;
|
|
17
95
|
//# sourceMappingURL=ViewEditor.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/ViewEditor/ViewEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"ViewEditor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/ViewEditor/ViewEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAK5E,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,cAAc,CAAC;AAMrF,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAWhE,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,KAAK,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AA+HpE,QAAA,MAAM,IAAI;;oBA7HmB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJT,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export * from './deprecated';
|
|
2
|
-
export * from './ControlSection';
|
|
3
1
|
export * from './FieldEditor';
|
|
4
2
|
export * from './Form';
|
|
3
|
+
export * from './ObjectForm';
|
|
4
|
+
export * from './ObjectPicker';
|
|
5
|
+
export * from './ObjectProperties';
|
|
6
|
+
export * from './Settings';
|
|
5
7
|
export * from './ViewEditor';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
|
|
3
|
-
export declare const TestLayout: ({ classNames, json, children }: ThemedClassName<PropsWithChildren<{
|
|
2
|
+
type TestLayoutProps = PropsWithChildren<{
|
|
4
3
|
json?: any;
|
|
5
|
-
}
|
|
6
|
-
export declare const
|
|
4
|
+
}>;
|
|
5
|
+
export declare const TestLayout: ({ children, json }: TestLayoutProps) => React.JSX.Element;
|
|
7
6
|
export declare const VIEW_EDITOR_DEBUG_SYMBOL: unique symbol;
|
|
8
7
|
export declare const FIELD_EDITOR_DEBUG_SYMBOL: unique symbol;
|
|
8
|
+
export declare const OBJECT_PROPERTIES_DEBUG_SYMBOL: unique symbol;
|
|
9
|
+
export {};
|
|
9
10
|
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAMtD,KAAK,eAAe,GAAG,iBAAiB,CAAC;IAAE,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAEzD,eAAO,MAAM,UAAU,uBAAwB,eAAe,sBAgB7D,CAAC;AAaF,eAAO,MAAM,wBAAwB,eAA4B,CAAC;AAClE,eAAO,MAAM,yBAAyB,eAA6B,CAAC;AACpE,eAAO,MAAM,8BAA8B,eAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|