@overmap-ai/forms 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +12 -0
  2. package/dist/builder/DropDispatch.d.ts +27 -0
  3. package/dist/builder/FieldActions.d.ts +11 -0
  4. package/dist/builder/FieldBuilder.d.ts +22 -0
  5. package/dist/builder/FieldSectionWithActions.d.ts +10 -0
  6. package/dist/builder/FieldWithActions.d.ts +10 -0
  7. package/dist/builder/FieldsEditor.d.ts +2 -0
  8. package/dist/builder/FormBuilder.d.ts +15 -0
  9. package/dist/builder/constants.d.ts +1 -0
  10. package/dist/builder/index.d.ts +2 -0
  11. package/dist/builder/typings.d.ts +11 -0
  12. package/dist/builder/utils.d.ts +11 -0
  13. package/dist/fields/BaseField/BaseField.d.ts +32 -0
  14. package/dist/fields/BaseField/hooks.d.ts +374 -0
  15. package/dist/fields/BaseField/index.d.ts +4 -0
  16. package/dist/fields/BaseField/layouts.d.ts +19 -0
  17. package/dist/fields/BaseField/typings.d.ts +7 -0
  18. package/dist/fields/BooleanField/BooleanInput.d.ts +4 -0
  19. package/dist/fields/BooleanField/index.d.ts +2 -0
  20. package/dist/fields/CustomField/CustomField.d.ts +19 -0
  21. package/dist/fields/CustomField/FieldInputClonerField/FieldInputCloner.d.ts +8 -0
  22. package/dist/fields/CustomField/FieldInputClonerField/FieldInputClonerField.d.ts +18 -0
  23. package/dist/fields/CustomField/FieldInputClonerField/index.d.ts +3 -0
  24. package/dist/fields/CustomField/FieldInputClonerField/typings.d.ts +5 -0
  25. package/dist/fields/CustomField/index.d.ts +1 -0
  26. package/dist/fields/DateField/DateInput.d.ts +4 -0
  27. package/dist/fields/DateField/index.d.ts +2 -0
  28. package/dist/fields/FieldSection/FieldSection.d.ts +29 -0
  29. package/dist/fields/FieldSection/FieldSectionLayout.d.ts +7 -0
  30. package/dist/fields/FieldSection/index.d.ts +1 -0
  31. package/dist/fields/MultiStringField/MultiStringInput.d.ts +8 -0
  32. package/dist/fields/MultiStringField/index.d.ts +2 -0
  33. package/dist/fields/NumberField/NumberInput.d.ts +4 -0
  34. package/dist/fields/NumberField/index.d.ts +2 -0
  35. package/dist/fields/SelectField/BaseSelectField.d.ts +26 -0
  36. package/dist/fields/SelectField/MultiSelectInput.d.ts +4 -0
  37. package/dist/fields/SelectField/SelectInput.d.ts +4 -0
  38. package/dist/fields/SelectField/index.d.ts +4 -0
  39. package/dist/fields/StringOrTextFields/StringField/StringInput.d.ts +4 -0
  40. package/dist/fields/StringOrTextFields/StringField/index.d.ts +2 -0
  41. package/dist/fields/StringOrTextFields/StringOrTextField.d.ts +29 -0
  42. package/dist/fields/StringOrTextFields/TextField/TextInput.d.ts +4 -0
  43. package/dist/fields/StringOrTextFields/TextField/index.d.ts +2 -0
  44. package/dist/fields/StringOrTextFields/index.d.ts +2 -0
  45. package/dist/fields/constants.d.ts +18 -0
  46. package/dist/fields/hooks.d.ts +6 -0
  47. package/dist/fields/index.d.ts +11 -0
  48. package/dist/fields/typings.d.ts +24 -0
  49. package/dist/fields/utils.d.ts +12 -0
  50. package/dist/forms.js +1786 -0
  51. package/dist/forms.umd.cjs +1 -0
  52. package/dist/index.d.ts +3 -0
  53. package/dist/renderer/FormBrowser/FormBrowser.d.ts +11 -0
  54. package/dist/renderer/FormRenderer/FormRenderer.d.ts +28 -0
  55. package/dist/renderer/FormSubmissionBrowser/FormSubmissionBrowser.d.ts +28 -0
  56. package/dist/renderer/FormSubmissionViewer/FormSubmissionViewer.d.ts +17 -0
  57. package/dist/renderer/PatchForm/Field.d.ts +15 -0
  58. package/dist/renderer/PatchForm/Provider.d.ts +24 -0
  59. package/dist/renderer/PatchForm/index.d.ts +2 -0
  60. package/dist/renderer/index.d.ts +5 -0
  61. package/dist/style.css +1 -0
  62. package/dist/typings.d.ts +5 -0
  63. package/dist/utils.d.ts +7 -0
  64. package/package.json +88 -0
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # Overmap `FormRenderer` component
2
+
3
+ Renders a form entry or renders a form that can be submitted.
4
+
5
+ # Overmap `FormBuilder` component
6
+
7
+ Allows a new form to be created or a new revision of an existing form to be made.
8
+
9
+ ## Dev notes
10
+
11
+ To use unreleased versions of peer dependencies like @overmap-ai/blocks, follow
12
+ [these instructions](https://github.com/facebook/react/issues/14257#issuecomment-595183610) for how to use `yarn link` with react.
@@ -0,0 +1,27 @@
1
+ import { SerializedFieldSection } from "@overmap-ai/core";
2
+ import { Reducer } from "react";
3
+ export interface SmallFieldSection {
4
+ /** is dropping disabled in this section? */
5
+ disabled: boolean;
6
+ /** id's of field that may not be dropped on this section */
7
+ conditionFields: Set<string>;
8
+ /** the index of the section the condition is in */
9
+ conditionIndex?: number;
10
+ /** the index of the section */
11
+ index: number;
12
+ /** label of the section */
13
+ label: string | null;
14
+ }
15
+ export type DropState = Record<string, SmallFieldSection>;
16
+ export type DropAction = {
17
+ type: "release";
18
+ } | {
19
+ type: "hold";
20
+ fieldId: string;
21
+ } | {
22
+ type: "update";
23
+ state: DropState;
24
+ };
25
+ export declare const reducer: Reducer<DropState, DropAction>;
26
+ /** creates a `DropState` from a list of `SerializedFieldSection` objects */
27
+ export declare const initializer: (fields: SerializedFieldSection[]) => DropState;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { DraggableProvidedDragHandleProps } from "@hello-pangea/dnd";
3
+ import { FieldBuilderArgs } from "./FieldBuilder";
4
+ interface FieldActionsProps {
5
+ remove: () => void;
6
+ dragHandleProps: DraggableProvidedDragHandleProps | null | undefined;
7
+ editProps: FieldBuilderArgs;
8
+ insertAfterProps: FieldBuilderArgs;
9
+ }
10
+ export declare const FieldActions: import("react").NamedExoticComponent<FieldActionsProps>;
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { NestedFieldPath } from "./typings";
2
+ import { FC, ReactNode } from "react";
3
+ import { FieldTypeIdentifier, ISerializedField } from "@overmap-ai/core";
4
+ import { Form } from '../typings';
5
+ interface FieldOptionsFormProps {
6
+ defaultField?: ISerializedField;
7
+ fieldType: FieldTypeIdentifier;
8
+ /** fields that can be used as a condition */
9
+ conditionalSourceFields?: ISerializedField[];
10
+ handleCancel: () => void;
11
+ handleCreateField: (form: Form) => void;
12
+ }
13
+ interface FieldBuilderProps extends Pick<FieldOptionsFormProps, "conditionalSourceFields"> {
14
+ index: number;
15
+ parentPath: NestedFieldPath;
16
+ initial?: ISerializedField;
17
+ editing?: boolean;
18
+ children: ReactNode;
19
+ }
20
+ export type FieldBuilderArgs = Omit<FieldBuilderProps, "children">;
21
+ export declare const FieldBuilder: FC<FieldBuilderProps>;
22
+ export {};
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { SerializedFieldSection } from "@overmap-ai/core";
3
+ import { DropState } from "./DropDispatch";
4
+ interface FieldSectionWithActionsProps {
5
+ field: SerializedFieldSection;
6
+ index: number;
7
+ dropState: DropState;
8
+ }
9
+ export declare const FieldSectionWithActions: import("react").NamedExoticComponent<FieldSectionWithActionsProps>;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { ISerializedField } from "@overmap-ai/core";
3
+ interface FieldWithActionsProps {
4
+ field: ISerializedField;
5
+ index: number;
6
+ sectionIndex: number;
7
+ remove: () => void;
8
+ }
9
+ export declare const FieldWithActions: import("react").NamedExoticComponent<FieldWithActionsProps>;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const FieldsEditor: import("react").NamedExoticComponent<object>;
@@ -0,0 +1,15 @@
1
+ import { FormBuilderSaveHandler } from "./typings";
2
+ import { ReactNode } from "react";
3
+ import { UserFormRevision } from "@overmap-ai/core";
4
+ interface FormBuilderProps {
5
+ onCancel?: () => void;
6
+ onSave: FormBuilderSaveHandler;
7
+ /** A revision of an existing form to edit. To create a new form, pass `undefined`. */
8
+ revision?: UserFormRevision;
9
+ /** A heading for the `FormBuilder`
10
+ * @default "Create a new form" or "Edit form" if `revision` is passed
11
+ */
12
+ heading?: ReactNode;
13
+ }
14
+ export declare const FormBuilder: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<FormBuilderProps & import("react").RefAttributes<HTMLDivElement>>>;
15
+ export {};
@@ -0,0 +1 @@
1
+ export declare const formId = "form-builder";
@@ -0,0 +1,2 @@
1
+ export * from "./FormBuilder";
2
+ export * from "./typings";
@@ -0,0 +1,11 @@
1
+ import { SerializedFieldSection, UserFormRevision } from "@overmap-ai/core";
2
+ export type NewForm = Pick<UserFormRevision<SerializedFieldSection>, "description" | "title" | "fields">;
3
+ export type FormBuilderSaveHandler = (form: NewForm | UserFormRevision) => void;
4
+ /** The `FormBuilder` can either be used to edit an existing form or create a new one.
5
+ *
6
+ * The only difference between the two is that new forms do not have `id` attributes.
7
+ */
8
+ export type FormikUserFormRevision = UserFormRevision<SerializedFieldSection> | NewForm;
9
+ /** Using `lodash.get` and `lodash.set`, we can set and get attributes of nested objects using a string path. This is
10
+ used to get and set attributes of the `fields` of a `SerializedFieldSection` object. */
11
+ export type NestedFieldPath = "fields" | `fields.${number}.fields`;
@@ -0,0 +1,11 @@
1
+ import { UserFormRevision, ISerializedField, SerializedFieldSection } from "@overmap-ai/core";
2
+ import { ISerializedOnlyField } from '../fields';
3
+ export declare const emptySection: (id?: string, fields?: ISerializedOnlyField[]) => SerializedFieldSection;
4
+ export declare const wrapRootFieldsWithFieldSection: (revision?: UserFormRevision) => UserFormRevision<SerializedFieldSection> | undefined;
5
+ export declare function reorder<T>(list: T[], source: number, destination: number): T[];
6
+ export declare function replace<T>(list: T[], index: number, value: T): T[];
7
+ export declare function insert<T>(list: T[] | undefined, index: number, value: T): T[];
8
+ export declare function remove<T>(list: T[], index: number): T[];
9
+ export declare const makeIdentifier: (existing: unknown, label: string) => string;
10
+ export declare const findFieldByIdentifier: (fields: ISerializedField[], identifier?: string) => ISerializedField | null;
11
+ export declare const makeConditionalSourceFields: (sections: SerializedFieldSection[], index: number) => (import("@overmap-ai/core").SerializedTextField | import("@overmap-ai/core").SerializedBooleanField | import("@overmap-ai/core").SerializedNumberField | import("@overmap-ai/core").SerializedDateField | import("@overmap-ai/core").SerializedStringField | import("@overmap-ai/core").SerializedSelectField | import("@overmap-ai/core").SerializedMultiStringField | import("@overmap-ai/core").SerializedMultiSelectField)[];
@@ -0,0 +1,32 @@
1
+ import { BaseSerializedField, BaseSerializedObject, FieldTypeIdentifier, FieldValue, ISerializedField } from "@overmap-ai/core";
2
+ import { AnyField, GetInputProps, ISerializedOnlyField, InputFieldLevelValidator, InputFormLevelValidator } from '../typings';
3
+ import { Form } from '../../typings';
4
+ import { ReactNode } from "react";
5
+ import { FieldSection } from '../FieldSection';
6
+ import { FieldOptions } from "./typings";
7
+ export declare abstract class BaseFormElement<TIdentifier extends FieldTypeIdentifier = FieldTypeIdentifier> {
8
+ readonly type: TIdentifier;
9
+ protected readonly identifier: string;
10
+ readonly description: string | null;
11
+ protected constructor(options: BaseSerializedObject);
12
+ getId(): string;
13
+ abstract getInput(props: GetInputProps<this>): ReactNode;
14
+ static deserialize(_data: ISerializedField): AnyField | FieldSection;
15
+ protected _serialize(): BaseSerializedObject<TIdentifier>;
16
+ }
17
+ export declare abstract class BaseField<TValue extends FieldValue, TIdentifier extends FieldTypeIdentifier = FieldTypeIdentifier> extends BaseFormElement<TIdentifier> {
18
+ static readonly fieldTypeName: string;
19
+ static readonly fieldTypeDescription: string;
20
+ readonly required: boolean;
21
+ private readonly formValidators;
22
+ private readonly fieldValidators;
23
+ readonly label: string;
24
+ protected constructor(options: FieldOptions<TValue>);
25
+ static getFieldCreationSchema(): AnyField[];
26
+ protected isBlank(value: TValue): boolean;
27
+ getError(value: TValue, allValues?: Form): string | undefined;
28
+ protected _serialize(): BaseSerializedField<TIdentifier>;
29
+ abstract serialize(): ISerializedOnlyField;
30
+ getFieldValidators(): InputFieldLevelValidator<TValue>[];
31
+ getFormValidators(): InputFormLevelValidator<TValue>[];
32
+ }
@@ -0,0 +1,374 @@
1
+ import { AnyField, ComponentProps } from '../typings';
2
+ import { ValueOfField } from "../../typings.ts";
3
+ import { FocusEventHandler } from "react";
4
+ export declare const useFormikInput: <TField extends AnyField>(props: ComponentProps<TField>) => readonly [{
5
+ readonly helpText: string | null;
6
+ readonly severity: "danger" | undefined;
7
+ readonly inputId: string;
8
+ readonly labelId: string;
9
+ readonly label: string;
10
+ readonly fieldProps: import("formik").FieldInputProps<ValueOfField<TField>>;
11
+ readonly helpers: import("formik").FieldHelperProps<ValueOfField<TField>>;
12
+ readonly field: TField;
13
+ }, {
14
+ readonly "aria-labelledby": string;
15
+ readonly accept?: string | undefined;
16
+ readonly acceptCharset?: string | undefined;
17
+ readonly action?: string | undefined;
18
+ readonly allowFullScreen?: boolean | undefined;
19
+ readonly allowTransparency?: boolean | undefined;
20
+ readonly alt?: string | undefined;
21
+ readonly as?: string | undefined;
22
+ readonly async?: boolean | undefined;
23
+ readonly autoComplete?: string | undefined;
24
+ readonly autoPlay?: boolean | undefined;
25
+ readonly capture?: boolean | "user" | "environment" | undefined;
26
+ readonly cellPadding?: string | number | undefined;
27
+ readonly cellSpacing?: string | number | undefined;
28
+ readonly charSet?: string | undefined;
29
+ readonly challenge?: string | undefined;
30
+ readonly checked?: boolean | undefined;
31
+ readonly cite?: string | undefined;
32
+ readonly classID?: string | undefined;
33
+ readonly cols?: number | undefined;
34
+ readonly colSpan?: number | undefined;
35
+ readonly controls?: boolean | undefined;
36
+ readonly coords?: string | undefined;
37
+ readonly crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
38
+ readonly data?: string | undefined;
39
+ readonly dateTime?: string | undefined;
40
+ readonly default?: boolean | undefined;
41
+ readonly defer?: boolean | undefined;
42
+ readonly disabled?: boolean | undefined;
43
+ readonly download?: any;
44
+ readonly encType?: string | undefined;
45
+ readonly form?: string | undefined;
46
+ readonly formAction?: string | undefined;
47
+ readonly formEncType?: string | undefined;
48
+ readonly formMethod?: string | undefined;
49
+ readonly formNoValidate?: boolean | undefined;
50
+ readonly formTarget?: string | undefined;
51
+ readonly frameBorder?: string | number | undefined;
52
+ readonly headers?: string | undefined;
53
+ readonly height?: string | number | undefined;
54
+ readonly high?: number | undefined;
55
+ readonly href?: string | undefined;
56
+ readonly hrefLang?: string | undefined;
57
+ readonly htmlFor?: string | undefined;
58
+ readonly httpEquiv?: string | undefined;
59
+ readonly integrity?: string | undefined;
60
+ readonly keyParams?: string | undefined;
61
+ readonly keyType?: string | undefined;
62
+ readonly kind?: string | undefined;
63
+ readonly label?: string | undefined;
64
+ readonly list?: string | undefined;
65
+ readonly loop?: boolean | undefined;
66
+ readonly low?: number | undefined;
67
+ readonly manifest?: string | undefined;
68
+ readonly marginHeight?: number | undefined;
69
+ readonly marginWidth?: number | undefined;
70
+ readonly max?: string | number | undefined;
71
+ readonly maxLength?: number | undefined;
72
+ readonly media?: string | undefined;
73
+ readonly mediaGroup?: string | undefined;
74
+ readonly method?: string | undefined;
75
+ readonly min?: string | number | undefined;
76
+ readonly minLength?: number | undefined;
77
+ readonly multiple?: boolean | undefined;
78
+ readonly muted?: boolean | undefined;
79
+ readonly noValidate?: boolean | undefined;
80
+ readonly open?: boolean | undefined;
81
+ readonly optimum?: number | undefined;
82
+ readonly pattern?: string | undefined;
83
+ readonly placeholder?: string | undefined;
84
+ readonly playsInline?: boolean | undefined;
85
+ readonly poster?: string | undefined;
86
+ readonly preload?: string | undefined;
87
+ readonly readOnly?: boolean | undefined;
88
+ readonly required?: boolean | undefined;
89
+ readonly reversed?: boolean | undefined;
90
+ readonly rows?: number | undefined;
91
+ readonly rowSpan?: number | undefined;
92
+ readonly sandbox?: string | undefined;
93
+ readonly scope?: string | undefined;
94
+ readonly scoped?: boolean | undefined;
95
+ readonly scrolling?: string | undefined;
96
+ readonly seamless?: boolean | undefined;
97
+ readonly selected?: boolean | undefined;
98
+ readonly shape?: string | undefined;
99
+ readonly sizes?: string | undefined;
100
+ readonly span?: number | undefined;
101
+ readonly src?: string | undefined;
102
+ readonly srcDoc?: string | undefined;
103
+ readonly srcLang?: string | undefined;
104
+ readonly srcSet?: string | undefined;
105
+ readonly start?: number | undefined;
106
+ readonly step?: string | number | undefined;
107
+ readonly summary?: string | undefined;
108
+ readonly target?: string | undefined;
109
+ readonly useMap?: string | undefined;
110
+ readonly width?: string | number | undefined;
111
+ readonly wmode?: string | undefined;
112
+ readonly wrap?: string | undefined;
113
+ readonly defaultChecked?: boolean | undefined;
114
+ readonly suppressContentEditableWarning?: boolean | undefined;
115
+ readonly suppressHydrationWarning?: boolean | undefined;
116
+ readonly accessKey?: string | undefined;
117
+ readonly autoFocus?: boolean | undefined;
118
+ readonly className?: string | undefined;
119
+ readonly contentEditable?: (boolean | "true" | "false") | "inherit" | undefined;
120
+ readonly contextMenu?: string | undefined;
121
+ readonly draggable?: (boolean | "true" | "false") | undefined;
122
+ readonly hidden?: boolean | undefined;
123
+ readonly lang?: string | undefined;
124
+ readonly nonce?: string | undefined;
125
+ readonly slot?: string | undefined;
126
+ readonly spellCheck?: (boolean | "true" | "false") | undefined;
127
+ readonly style?: import("react").CSSProperties | undefined;
128
+ readonly tabIndex?: number | undefined;
129
+ readonly title?: string | undefined;
130
+ readonly translate?: "yes" | "no" | undefined;
131
+ readonly radioGroup?: string | undefined;
132
+ readonly role?: import("react").AriaRole | undefined;
133
+ readonly about?: string | undefined;
134
+ readonly content?: string | undefined;
135
+ readonly datatype?: string | undefined;
136
+ readonly inlist?: any;
137
+ readonly prefix?: string | undefined;
138
+ readonly property?: string | undefined;
139
+ readonly rel?: string | undefined;
140
+ readonly resource?: string | undefined;
141
+ readonly rev?: string | undefined;
142
+ readonly typeof?: string | undefined;
143
+ readonly vocab?: string | undefined;
144
+ readonly autoCapitalize?: string | undefined;
145
+ readonly autoCorrect?: string | undefined;
146
+ readonly autoSave?: string | undefined;
147
+ readonly itemProp?: string | undefined;
148
+ readonly itemScope?: boolean | undefined;
149
+ readonly itemType?: string | undefined;
150
+ readonly itemID?: string | undefined;
151
+ readonly itemRef?: string | undefined;
152
+ readonly results?: number | undefined;
153
+ readonly security?: string | undefined;
154
+ readonly unselectable?: "on" | "off" | undefined;
155
+ readonly inputMode?: "text" | "none" | "search" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
156
+ readonly is?: string | undefined;
157
+ readonly "aria-activedescendant"?: string | undefined;
158
+ readonly "aria-atomic"?: (boolean | "true" | "false") | undefined;
159
+ readonly "aria-autocomplete"?: "list" | "none" | "inline" | "both" | undefined;
160
+ readonly "aria-braillelabel"?: string | undefined;
161
+ readonly "aria-brailleroledescription"?: string | undefined;
162
+ readonly "aria-busy"?: (boolean | "true" | "false") | undefined;
163
+ readonly "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
164
+ readonly "aria-colcount"?: number | undefined;
165
+ readonly "aria-colindex"?: number | undefined;
166
+ readonly "aria-colindextext"?: string | undefined;
167
+ readonly "aria-colspan"?: number | undefined;
168
+ readonly "aria-controls"?: string | undefined;
169
+ readonly "aria-current"?: boolean | "date" | "step" | "true" | "false" | "page" | "location" | "time" | undefined;
170
+ readonly "aria-describedby"?: string | undefined;
171
+ readonly "aria-description"?: string | undefined;
172
+ readonly "aria-details"?: string | undefined;
173
+ readonly "aria-disabled"?: (boolean | "true" | "false") | undefined;
174
+ readonly "aria-dropeffect"?: "link" | "none" | "copy" | "execute" | "move" | "popup" | undefined;
175
+ readonly "aria-errormessage"?: string | undefined;
176
+ readonly "aria-expanded"?: (boolean | "true" | "false") | undefined;
177
+ readonly "aria-flowto"?: string | undefined;
178
+ readonly "aria-grabbed"?: (boolean | "true" | "false") | undefined;
179
+ readonly "aria-haspopup"?: boolean | "true" | "false" | "dialog" | "grid" | "listbox" | "menu" | "tree" | undefined;
180
+ readonly "aria-hidden"?: (boolean | "true" | "false") | undefined;
181
+ readonly "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
182
+ readonly "aria-keyshortcuts"?: string | undefined;
183
+ readonly "aria-label"?: string | undefined;
184
+ readonly "aria-level"?: number | undefined;
185
+ readonly "aria-live"?: "off" | "assertive" | "polite" | undefined;
186
+ readonly "aria-modal"?: (boolean | "true" | "false") | undefined;
187
+ readonly "aria-multiline"?: (boolean | "true" | "false") | undefined;
188
+ readonly "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
189
+ readonly "aria-orientation"?: "horizontal" | "vertical" | undefined;
190
+ readonly "aria-owns"?: string | undefined;
191
+ readonly "aria-placeholder"?: string | undefined;
192
+ readonly "aria-posinset"?: number | undefined;
193
+ readonly "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
194
+ readonly "aria-readonly"?: (boolean | "true" | "false") | undefined;
195
+ readonly "aria-relevant"?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
196
+ readonly "aria-required"?: (boolean | "true" | "false") | undefined;
197
+ readonly "aria-roledescription"?: string | undefined;
198
+ readonly "aria-rowcount"?: number | undefined;
199
+ readonly "aria-rowindex"?: number | undefined;
200
+ readonly "aria-rowindextext"?: string | undefined;
201
+ readonly "aria-rowspan"?: number | undefined;
202
+ readonly "aria-selected"?: (boolean | "true" | "false") | undefined;
203
+ readonly "aria-setsize"?: number | undefined;
204
+ readonly "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
205
+ readonly "aria-valuemax"?: number | undefined;
206
+ readonly "aria-valuemin"?: number | undefined;
207
+ readonly "aria-valuenow"?: number | undefined;
208
+ readonly "aria-valuetext"?: string | undefined;
209
+ readonly children?: import("react").ReactNode;
210
+ readonly dangerouslySetInnerHTML?: {
211
+ __html: string | TrustedHTML;
212
+ } | undefined;
213
+ readonly onCopy?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
214
+ readonly onCopyCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
215
+ readonly onCut?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
216
+ readonly onCutCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
217
+ readonly onPaste?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
218
+ readonly onPasteCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
219
+ readonly onCompositionEnd?: import("react").CompositionEventHandler<HTMLElement> | undefined;
220
+ readonly onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
221
+ readonly onCompositionStart?: import("react").CompositionEventHandler<HTMLElement> | undefined;
222
+ readonly onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
223
+ readonly onCompositionUpdate?: import("react").CompositionEventHandler<HTMLElement> | undefined;
224
+ readonly onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
225
+ readonly onFocus?: FocusEventHandler<HTMLElement> | undefined;
226
+ readonly onFocusCapture?: FocusEventHandler<HTMLElement> | undefined;
227
+ readonly onBlurCapture?: FocusEventHandler<HTMLElement> | undefined;
228
+ readonly onChangeCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
229
+ readonly onBeforeInput?: import("react").FormEventHandler<HTMLElement> | undefined;
230
+ readonly onBeforeInputCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
231
+ readonly onInput?: import("react").FormEventHandler<HTMLElement> | undefined;
232
+ readonly onInputCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
233
+ readonly onReset?: import("react").FormEventHandler<HTMLElement> | undefined;
234
+ readonly onResetCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
235
+ readonly onSubmit?: import("react").FormEventHandler<HTMLElement> | undefined;
236
+ readonly onSubmitCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
237
+ readonly onInvalid?: import("react").FormEventHandler<HTMLElement> | undefined;
238
+ readonly onInvalidCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
239
+ readonly onLoad?: import("react").ReactEventHandler<HTMLElement> | undefined;
240
+ readonly onLoadCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
241
+ readonly onError?: import("react").ReactEventHandler<HTMLElement> | undefined;
242
+ readonly onErrorCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
243
+ readonly onKeyDown?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
244
+ readonly onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
245
+ readonly onKeyPress?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
246
+ readonly onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
247
+ readonly onKeyUp?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
248
+ readonly onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
249
+ readonly onAbort?: import("react").ReactEventHandler<HTMLElement> | undefined;
250
+ readonly onAbortCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
251
+ readonly onCanPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
252
+ readonly onCanPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
253
+ readonly onCanPlayThrough?: import("react").ReactEventHandler<HTMLElement> | undefined;
254
+ readonly onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
255
+ readonly onDurationChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
256
+ readonly onDurationChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
257
+ readonly onEmptied?: import("react").ReactEventHandler<HTMLElement> | undefined;
258
+ readonly onEmptiedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
259
+ readonly onEncrypted?: import("react").ReactEventHandler<HTMLElement> | undefined;
260
+ readonly onEncryptedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
261
+ readonly onEnded?: import("react").ReactEventHandler<HTMLElement> | undefined;
262
+ readonly onEndedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
263
+ readonly onLoadedData?: import("react").ReactEventHandler<HTMLElement> | undefined;
264
+ readonly onLoadedDataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
265
+ readonly onLoadedMetadata?: import("react").ReactEventHandler<HTMLElement> | undefined;
266
+ readonly onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
267
+ readonly onLoadStart?: import("react").ReactEventHandler<HTMLElement> | undefined;
268
+ readonly onLoadStartCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
269
+ readonly onPause?: import("react").ReactEventHandler<HTMLElement> | undefined;
270
+ readonly onPauseCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
271
+ readonly onPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
272
+ readonly onPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
273
+ readonly onPlaying?: import("react").ReactEventHandler<HTMLElement> | undefined;
274
+ readonly onPlayingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
275
+ readonly onProgress?: import("react").ReactEventHandler<HTMLElement> | undefined;
276
+ readonly onProgressCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
277
+ readonly onRateChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
278
+ readonly onRateChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
279
+ readonly onResize?: import("react").ReactEventHandler<HTMLElement> | undefined;
280
+ readonly onResizeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
281
+ readonly onSeeked?: import("react").ReactEventHandler<HTMLElement> | undefined;
282
+ readonly onSeekedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
283
+ readonly onSeeking?: import("react").ReactEventHandler<HTMLElement> | undefined;
284
+ readonly onSeekingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
285
+ readonly onStalled?: import("react").ReactEventHandler<HTMLElement> | undefined;
286
+ readonly onStalledCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
287
+ readonly onSuspend?: import("react").ReactEventHandler<HTMLElement> | undefined;
288
+ readonly onSuspendCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
289
+ readonly onTimeUpdate?: import("react").ReactEventHandler<HTMLElement> | undefined;
290
+ readonly onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
291
+ readonly onVolumeChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
292
+ readonly onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
293
+ readonly onWaiting?: import("react").ReactEventHandler<HTMLElement> | undefined;
294
+ readonly onWaitingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
295
+ readonly onAuxClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
296
+ readonly onAuxClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
297
+ readonly onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
298
+ readonly onClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
299
+ readonly onContextMenu?: import("react").MouseEventHandler<HTMLElement> | undefined;
300
+ readonly onContextMenuCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
301
+ readonly onDoubleClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
302
+ readonly onDoubleClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
303
+ readonly onDrag?: import("react").DragEventHandler<HTMLElement> | undefined;
304
+ readonly onDragCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
305
+ readonly onDragEnd?: import("react").DragEventHandler<HTMLElement> | undefined;
306
+ readonly onDragEndCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
307
+ readonly onDragEnter?: import("react").DragEventHandler<HTMLElement> | undefined;
308
+ readonly onDragEnterCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
309
+ readonly onDragExit?: import("react").DragEventHandler<HTMLElement> | undefined;
310
+ readonly onDragExitCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
311
+ readonly onDragLeave?: import("react").DragEventHandler<HTMLElement> | undefined;
312
+ readonly onDragLeaveCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
313
+ readonly onDragOver?: import("react").DragEventHandler<HTMLElement> | undefined;
314
+ readonly onDragOverCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
315
+ readonly onDragStart?: import("react").DragEventHandler<HTMLElement> | undefined;
316
+ readonly onDragStartCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
317
+ readonly onDrop?: import("react").DragEventHandler<HTMLElement> | undefined;
318
+ readonly onDropCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
319
+ readonly onMouseDown?: import("react").MouseEventHandler<HTMLElement> | undefined;
320
+ readonly onMouseDownCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
321
+ readonly onMouseEnter?: import("react").MouseEventHandler<HTMLElement> | undefined;
322
+ readonly onMouseLeave?: import("react").MouseEventHandler<HTMLElement> | undefined;
323
+ readonly onMouseMove?: import("react").MouseEventHandler<HTMLElement> | undefined;
324
+ readonly onMouseMoveCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
325
+ readonly onMouseOut?: import("react").MouseEventHandler<HTMLElement> | undefined;
326
+ readonly onMouseOutCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
327
+ readonly onMouseOver?: import("react").MouseEventHandler<HTMLElement> | undefined;
328
+ readonly onMouseOverCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
329
+ readonly onMouseUp?: import("react").MouseEventHandler<HTMLElement> | undefined;
330
+ readonly onMouseUpCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
331
+ readonly onSelect?: import("react").ReactEventHandler<HTMLElement> | undefined;
332
+ readonly onSelectCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
333
+ readonly onTouchCancel?: import("react").TouchEventHandler<HTMLElement> | undefined;
334
+ readonly onTouchCancelCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
335
+ readonly onTouchEnd?: import("react").TouchEventHandler<HTMLElement> | undefined;
336
+ readonly onTouchEndCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
337
+ readonly onTouchMove?: import("react").TouchEventHandler<HTMLElement> | undefined;
338
+ readonly onTouchMoveCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
339
+ readonly onTouchStart?: import("react").TouchEventHandler<HTMLElement> | undefined;
340
+ readonly onTouchStartCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
341
+ readonly onPointerDown?: import("react").PointerEventHandler<HTMLElement> | undefined;
342
+ readonly onPointerDownCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
343
+ readonly onPointerMove?: import("react").PointerEventHandler<HTMLElement> | undefined;
344
+ readonly onPointerMoveCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
345
+ readonly onPointerUp?: import("react").PointerEventHandler<HTMLElement> | undefined;
346
+ readonly onPointerUpCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
347
+ readonly onPointerCancel?: import("react").PointerEventHandler<HTMLElement> | undefined;
348
+ readonly onPointerCancelCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
349
+ readonly onPointerEnter?: import("react").PointerEventHandler<HTMLElement> | undefined;
350
+ readonly onPointerEnterCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
351
+ readonly onPointerLeave?: import("react").PointerEventHandler<HTMLElement> | undefined;
352
+ readonly onPointerLeaveCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
353
+ readonly onPointerOver?: import("react").PointerEventHandler<HTMLElement> | undefined;
354
+ readonly onPointerOverCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
355
+ readonly onPointerOut?: import("react").PointerEventHandler<HTMLElement> | undefined;
356
+ readonly onPointerOutCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
357
+ readonly onGotPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
358
+ readonly onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
359
+ readonly onLostPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
360
+ readonly onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
361
+ readonly onScroll?: import("react").UIEventHandler<HTMLElement> | undefined;
362
+ readonly onScrollCapture?: import("react").UIEventHandler<HTMLElement> | undefined;
363
+ readonly onWheel?: import("react").WheelEventHandler<HTMLElement> | undefined;
364
+ readonly onWheelCapture?: import("react").WheelEventHandler<HTMLElement> | undefined;
365
+ readonly onAnimationStart?: import("react").AnimationEventHandler<HTMLElement> | undefined;
366
+ readonly onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
367
+ readonly onAnimationEnd?: import("react").AnimationEventHandler<HTMLElement> | undefined;
368
+ readonly onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
369
+ readonly onAnimationIteration?: import("react").AnimationEventHandler<HTMLElement> | undefined;
370
+ readonly onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
371
+ readonly onTransitionEnd?: import("react").TransitionEventHandler<HTMLElement> | undefined;
372
+ readonly onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
373
+ readonly key?: import("react").Key | null | undefined;
374
+ }];
@@ -0,0 +1,4 @@
1
+ export * from "./BaseField";
2
+ export * from "./layouts";
3
+ export * from "./hooks";
4
+ export * from "./typings";
@@ -0,0 +1,19 @@
1
+ import { Flex, Severity, ThemeOptions } from "@overmap-ai/blocks";
2
+ import { ReactElement, ComponentProps, ReactNode } from "react";
3
+ export type Color = ThemeOptions["accentColor"];
4
+ interface InputWithLabelProps {
5
+ severity: Severity | undefined;
6
+ inputId: string;
7
+ labelId: string;
8
+ label: string;
9
+ children: ReactNode;
10
+ flexProps?: ComponentProps<typeof Flex>;
11
+ }
12
+ export declare const InputWithLabel: (props: InputWithLabelProps) => import("react/jsx-runtime").JSX.Element;
13
+ interface InputWithLabelAndHelpTextProps {
14
+ severity: Severity | undefined;
15
+ helpText: string | null;
16
+ children: ReactElement<InputWithLabelProps>;
17
+ }
18
+ export declare const InputWithLabelAndHelpText: (props: InputWithLabelAndHelpTextProps) => import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BaseSerializedField } from "@overmap-ai/core";
2
+ import { InputFieldLevelValidator, InputFormLevelValidator } from '..';
3
+ export interface FieldOptions<TValue> extends BaseSerializedField {
4
+ fieldValidators?: InputFieldLevelValidator<TValue>[];
5
+ formValidators?: InputFormLevelValidator<TValue>[];
6
+ }
7
+ export type ChildFieldOptions<TValue> = Omit<FieldOptions<TValue>, "type">;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ComponentProps } from '../typings';
3
+ import { BooleanField } from "./BooleanField";
4
+ export declare const BooleanInput: import("react").NamedExoticComponent<ComponentProps<BooleanField>>;
@@ -0,0 +1,2 @@
1
+ export * from "./BooleanField";
2
+ export * from "./BooleanInput";
@@ -0,0 +1,19 @@
1
+ import { FieldTypeIdentifier, FieldValue } from "@overmap-ai/core";
2
+ import { BaseField, ChildFieldOptions } from "../BaseField";
3
+ import { FC, ReactNode } from "react";
4
+ import { GetInputProps, ISerializedOnlyField } from "../typings";
5
+ export interface CustomFieldOptions<TValue> extends ChildFieldOptions<TValue> {
6
+ }
7
+ export declare class CustomField<TValue extends FieldValue,
8
+ /** The options passed to constructor */
9
+ TFieldOptions extends CustomFieldOptions<TValue>,
10
+ /** The props passed to the custom component */
11
+ TComponentProps extends GetInputProps<CustomField<TValue, TFieldOptions, TComponentProps>>, TIdentifier extends FieldTypeIdentifier = FieldTypeIdentifier> extends BaseField<TValue, TIdentifier> {
12
+ static readonly fieldTypeName = "Custom";
13
+ static readonly fieldTypeDescription = "Allows re-rendering of field already in the form";
14
+ readonly Component: FC<TComponentProps>;
15
+ readonly options: TFieldOptions;
16
+ constructor(options: TFieldOptions, Component: FC<TComponentProps>);
17
+ serialize(): ISerializedOnlyField;
18
+ getInput(props: TComponentProps): ReactNode;
19
+ }