@overmap-ai/forms 1.0.37-style-updates.3 → 1.0.37-time-picker-field.2

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 (32) hide show
  1. package/dist/ImageFile/index.d.ts +0 -1
  2. package/dist/VideoCard/VideoCard.d.ts +8 -0
  3. package/dist/VideoCard/index.d.ts +1 -0
  4. package/dist/VideoFile/VideoFile.d.ts +5 -0
  5. package/dist/VideoFile/index.d.ts +1 -0
  6. package/dist/form/builder/hooks.d.ts +1 -1
  7. package/dist/form/builder/utils.d.ts +2 -2
  8. package/dist/form/conditions/TimeFieldCondition/TimeFieldCondition.d.ts +19 -0
  9. package/dist/form/conditions/TimeFieldCondition/TimeFieldConditionCell.d.ts +6 -0
  10. package/dist/form/conditions/TimeFieldCondition/index.d.ts +3 -0
  11. package/dist/form/conditions/TimeFieldCondition/typings.d.ts +4 -0
  12. package/dist/form/conditions/components/TimeInputPopover.d.ts +10 -0
  13. package/dist/form/conditions/components/index.d.ts +1 -0
  14. package/dist/form/conditions/constants.d.ts +2 -0
  15. package/dist/form/conditions/index.d.ts +1 -0
  16. package/dist/form/conditions/typings.d.ts +4 -3
  17. package/dist/form/fields/TimeField/TimeField.d.ts +27 -0
  18. package/dist/form/fields/TimeField/TimeField.test.d.ts +1 -0
  19. package/dist/form/fields/TimeField/TimeFieldInput.d.ts +7 -0
  20. package/dist/form/fields/TimeField/index.d.ts +4 -0
  21. package/dist/form/fields/TimeField/typings.d.ts +8 -0
  22. package/dist/form/fields/TimeField/utils.d.ts +5 -0
  23. package/dist/form/fields/constants.d.ts +2 -0
  24. package/dist/form/fields/index.d.ts +1 -0
  25. package/dist/form/fields/typings.d.ts +4 -3
  26. package/dist/form/modifiers/index.d.ts +1 -0
  27. package/dist/form/modifiers/time.d.ts +8 -0
  28. package/dist/forms.js +3870 -3472
  29. package/dist/forms.umd.cjs +68 -58
  30. package/dist/index.d.ts +3 -0
  31. package/package.json +1 -1
  32. /package/dist/{ImageFile/hooks.d.ts → hooks.d.ts} +0 -0
@@ -1,2 +1 @@
1
1
  export * from './ImageFile';
2
- export * from './hooks';
@@ -0,0 +1,8 @@
1
+ import { Card } from '@overmap-ai/blocks';
2
+ import { ComponentProps, ReactNode } from 'react';
3
+ export interface VideoCardProps extends Omit<ComponentProps<typeof Card>, "children"> {
4
+ file: File | null;
5
+ error?: string;
6
+ rightSlot?: ReactNode;
7
+ }
8
+ export declare const VideoCard: import('react').NamedExoticComponent<VideoCardProps>;
@@ -0,0 +1 @@
1
+ export * from './VideoCard';
@@ -0,0 +1,5 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ export interface VideoFileProps extends Omit<ComponentPropsWithRef<"video">, "src"> {
3
+ file: File;
4
+ }
5
+ export declare const VideoFile: import('react').NamedExoticComponent<VideoFileProps>;
@@ -0,0 +1 @@
1
+ export * from './VideoFile';
@@ -2,6 +2,6 @@ import { FieldType } from '../fields';
2
2
  export declare const useFieldTypeItems: (onSelect?: (type: Exclude<FieldType, "section">) => void) => {
3
3
  children: string;
4
4
  icon: import("react/jsx-runtime").JSX.Element;
5
- value: "string" | "number" | "boolean" | "select" | "text" | "radio" | "date" | "checkbox-list" | "pass-fail" | "multi-select" | "multi-string" | "rating" | "qr" | "upload" | "otp";
5
+ value: "string" | "number" | "boolean" | "select" | "time" | "text" | "radio" | "date" | "checkbox-list" | "pass-fail" | "multi-select" | "multi-string" | "rating" | "qr" | "upload" | "otp";
6
6
  onSelect: () => void;
7
7
  }[];
@@ -1,5 +1,5 @@
1
- import { BooleanFieldCondition, CheckboxListFieldCondition, DateFieldCondition, MultiSelectFieldCondition, MultiStringFieldCondition, NumberFieldCondition, OTPFieldCondition, PassFailFieldCondition, RadioFieldCondition, RatingFieldCondition, ScanFieldCondition, SelectFieldCondition, StringFieldCondition, TextFieldCondition, UploadFieldCondition } from '../conditions';
1
+ import { BooleanFieldCondition, CheckboxListFieldCondition, DateFieldCondition, MultiSelectFieldCondition, MultiStringFieldCondition, NumberFieldCondition, OTPFieldCondition, PassFailFieldCondition, RadioFieldCondition, RatingFieldCondition, ScanFieldCondition, SelectFieldCondition, StringFieldCondition, TextFieldCondition, TimeFieldCondition, UploadFieldCondition } from '../conditions';
2
2
  import { Field, FieldCreationSchemaObject, FieldType } from '../fields';
3
3
  export declare const createField: (type: Exclude<FieldType, "section">) => Field;
4
- export declare const createCondition: (field: Field) => BooleanFieldCondition | CheckboxListFieldCondition | DateFieldCondition | MultiSelectFieldCondition | MultiStringFieldCondition | NumberFieldCondition | OTPFieldCondition | PassFailFieldCondition | RadioFieldCondition | RatingFieldCondition | ScanFieldCondition | SelectFieldCondition | StringFieldCondition | TextFieldCondition | UploadFieldCondition;
4
+ export declare const createCondition: (field: Field) => BooleanFieldCondition | CheckboxListFieldCondition | DateFieldCondition | MultiSelectFieldCondition | MultiStringFieldCondition | NumberFieldCondition | OTPFieldCondition | PassFailFieldCondition | RadioFieldCondition | RatingFieldCondition | ScanFieldCondition | SelectFieldCondition | StringFieldCondition | TextFieldCondition | TimeFieldCondition | UploadFieldCondition;
5
5
  export declare const getFieldCreationSchema: (type: FieldType, path: string) => FieldCreationSchemaObject[] | undefined;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { SerializedTimeCondition, TimeConditionModifiers } from './typings';
3
+ import { Time, TimeField, TimeRange, ValueOfField } from '../../fields';
4
+ import { BaseCondition, BaseConditionOptions, ConditionRenderProps } from '../BaseCondition';
5
+ export interface TimeFieldConditionOptions extends BaseConditionOptions<TimeField, Time | TimeRange, TimeConditionModifiers> {
6
+ }
7
+ export declare class TimeFieldCondition extends BaseCondition<TimeField, ValueOfField<TimeField>, Time | TimeRange, Time | TimeRange, TimeConditionModifiers, TimeFieldCondition> {
8
+ readonly modifiers: {
9
+ equals: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, `${number}:${number}` | TimeRange, `${number}:${number}` | TimeRange, `${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
10
+ notEquals: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, `${number}:${number}` | TimeRange, `${number}:${number}` | TimeRange, `${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
11
+ before: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, `${number}:${number}` | TimeRange, `${number}:${number}` | TimeRange, `${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
12
+ after: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, `${number}:${number}` | TimeRange, `${number}:${number}` | TimeRange, `${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
13
+ inRange: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, string | TimeRange, string | TimeRange, `${number}:${number}`, TimeRange, TimeRange>;
14
+ notInRange: import('../..').FieldConditionModifierConfig<`${number}:${number}` | null, string | TimeRange, string | TimeRange, `${number}:${number}`, TimeRange, TimeRange>;
15
+ };
16
+ constructor(options: TimeFieldConditionOptions);
17
+ static deserialize(serializedCondition: SerializedTimeCondition, field: TimeField): TimeFieldCondition;
18
+ render(props: ConditionRenderProps<TimeFieldCondition>): ReactNode;
19
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseConditionCellProps } from '../BaseCondition';
2
+ import { TimeFieldCondition } from './TimeFieldCondition';
3
+ interface TimeFieldConditionCellProps extends BaseConditionCellProps<TimeFieldCondition> {
4
+ }
5
+ export declare const TimeFieldConditionCell: (props: TimeFieldConditionCellProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './TimeFieldCondition';
2
+ export * from './TimeFieldConditionCell';
3
+ export * from './typings';
@@ -0,0 +1,4 @@
1
+ import { Time, TimeField, TimeRange, TypeOfField } from '../../fields';
2
+ import { BaseSerializedCondition } from '../BaseCondition';
3
+ export type TimeConditionModifiers = "equals" | "notEquals" | "before" | "after" | "inRange" | "notInRange";
4
+ export type SerializedTimeCondition = BaseSerializedCondition<TypeOfField<TimeField>, Time | TimeRange, TimeConditionModifiers>;
@@ -0,0 +1,10 @@
1
+ import { Popover } from '@overmap-ai/blocks';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+ import { Time } from '../../fields';
4
+ interface TimeInputPopoverProps extends ComponentPropsWithoutRef<typeof Popover.Root>, ComponentPropsWithoutRef<typeof Popover.Content> {
5
+ placeholder?: string;
6
+ value?: Time | null;
7
+ onValueChange?: (value: Time | null) => void;
8
+ }
9
+ export declare const TimeInputPopover: import('react').NamedExoticComponent<TimeInputPopoverProps>;
10
+ export {};
@@ -7,3 +7,4 @@ export * from './RemoveConditionButton';
7
7
  export * from './SelectFieldOptionMultiSelectGroup';
8
8
  export * from './SelectFieldOptionSelectGroup';
9
9
  export * from './TextInputPopover';
10
+ export * from './TimeInputPopover';
@@ -12,6 +12,7 @@ import { ScanFieldCondition } from './ScanFieldCondition';
12
12
  import { SelectFieldCondition } from './SelectFieldCondition';
13
13
  import { StringFieldCondition } from './StringFieldCondition';
14
14
  import { TextFieldCondition } from './TextFieldCondition';
15
+ import { TimeFieldCondition } from './TimeFieldCondition';
15
16
  import { UploadFieldCondition } from './UploadFieldCondition';
16
17
  export declare const ConditionTypeToClsMapping: {
17
18
  date: typeof DateFieldCondition;
@@ -20,6 +21,7 @@ export declare const ConditionTypeToClsMapping: {
20
21
  select: typeof SelectFieldCondition;
21
22
  string: typeof StringFieldCondition;
22
23
  text: typeof TextFieldCondition;
24
+ time: typeof TimeFieldCondition;
23
25
  upload: typeof UploadFieldCondition;
24
26
  qr: typeof ScanFieldCondition;
25
27
  "multi-string": typeof MultiStringFieldCondition;
@@ -14,6 +14,7 @@ export * from './ScanFieldCondition';
14
14
  export * from './SelectFieldCondition';
15
15
  export * from './StringFieldCondition';
16
16
  export * from './TextFieldCondition';
17
+ export * from './TimeFieldCondition';
17
18
  export type * from './typings';
18
19
  export * from './UploadFieldCondition';
19
20
  export * from './utils';
@@ -13,10 +13,11 @@ import { ScanFieldCondition, SerializedScanCondition } from './ScanFieldConditio
13
13
  import { SelectFieldCondition, SerializedSelectCondition } from './SelectFieldCondition';
14
14
  import { SerializedStringCondition, StringFieldCondition } from './StringFieldCondition';
15
15
  import { SerializedTextCondition, TextFieldCondition } from './TextFieldCondition';
16
+ import { SerializedTimeCondition, TimeFieldCondition } from './TimeFieldCondition';
16
17
  import { SerializedUploadCondition, UploadFieldCondition } from './UploadFieldCondition';
17
- export type Condition = BooleanFieldCondition | CheckboxListFieldCondition | PassFailFieldCondition | DateFieldCondition | MultiSelectFieldCondition | MultiStringFieldCondition | NumberFieldCondition | RadioFieldCondition | RatingFieldCondition | ScanFieldCondition | SelectFieldCondition | StringFieldCondition | TextFieldCondition | UploadFieldCondition | OTPFieldCondition;
18
- export type SerializedCondition = SerializedTextCondition | SerializedBooleanCondition | SerializedNumberCondition | SerializedDateCondition | SerializedStringCondition | SerializedSelectCondition | SerializedMultiStringCondition | SerializedMultiSelectCondition | SerializedUploadCondition | SerializedScanCondition | SerializedRadioCondition | SerializedRatingCondition | SerializedCheckboxListCondition | SerializedPassFailFieldCondition | SerializedOTPCondition;
19
- export type ConditionClass = typeof BooleanFieldCondition | typeof CheckboxListFieldCondition | typeof PassFailFieldCondition | typeof DateFieldCondition | typeof MultiSelectFieldCondition | typeof MultiStringFieldCondition | typeof NumberFieldCondition | typeof RadioFieldCondition | typeof RatingFieldCondition | typeof ScanFieldCondition | typeof SelectFieldCondition | typeof StringFieldCondition | typeof TextFieldCondition | typeof UploadFieldCondition | typeof OTPFieldCondition;
18
+ export type Condition = BooleanFieldCondition | CheckboxListFieldCondition | PassFailFieldCondition | DateFieldCondition | MultiSelectFieldCondition | MultiStringFieldCondition | NumberFieldCondition | RadioFieldCondition | RatingFieldCondition | ScanFieldCondition | SelectFieldCondition | StringFieldCondition | TextFieldCondition | TimeFieldCondition | UploadFieldCondition | OTPFieldCondition;
19
+ export type SerializedCondition = SerializedTextCondition | SerializedBooleanCondition | SerializedNumberCondition | SerializedDateCondition | SerializedStringCondition | SerializedSelectCondition | SerializedMultiStringCondition | SerializedMultiSelectCondition | SerializedUploadCondition | SerializedScanCondition | SerializedRadioCondition | SerializedRatingCondition | SerializedCheckboxListCondition | SerializedPassFailFieldCondition | SerializedOTPCondition | SerializedTimeCondition;
20
+ export type ConditionClass = typeof BooleanFieldCondition | typeof CheckboxListFieldCondition | typeof PassFailFieldCondition | typeof DateFieldCondition | typeof MultiSelectFieldCondition | typeof MultiStringFieldCondition | typeof NumberFieldCondition | typeof RadioFieldCondition | typeof RatingFieldCondition | typeof ScanFieldCondition | typeof SelectFieldCondition | typeof StringFieldCondition | typeof TextFieldCondition | typeof TimeFieldCondition | typeof UploadFieldCondition | typeof OTPFieldCondition;
20
21
  export interface FieldConditionManager<TCondition extends AnyCondition> {
21
22
  readonly conditions: Record<string, TCondition[]>;
22
23
  getConditions(identifier: string): TCondition[];
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { SerializedTimeField, Time } from './typings';
3
+ import { BaseField, FieldOptions } from '../BaseField';
4
+ import { FieldRenderProps } from '../BaseFormElement';
5
+ export interface TimeFieldOptions extends FieldOptions {
6
+ }
7
+ export declare class TimeField extends BaseField<"time", Time | null, Time | null, TimeField> {
8
+ readonly type = "time";
9
+ static readonly fieldTypeName = "Time";
10
+ static readonly fieldTypeDescription = "Allows specifying a time.";
11
+ readonly onlyValidateAfterTouched: boolean;
12
+ constructor(options: TimeFieldOptions);
13
+ serialize(): SerializedTimeField;
14
+ getOptions(): TimeFieldOptions;
15
+ duplicate(identifier: string): TimeField;
16
+ static deserialize(data: SerializedTimeField): TimeField;
17
+ setOptions(options: Partial<TimeFieldOptions>): void;
18
+ serializeValue(value: Time | null): Time | null;
19
+ deserializeValue(value: Time | null): Time | null;
20
+ render(props: FieldRenderProps): ReactNode;
21
+ isSerializedValue(value: unknown): value is Time | null;
22
+ isValue(value: unknown): value is Time | null;
23
+ blankValue(): Time | null;
24
+ blankSerializedValue(): Time | null;
25
+ areSerializedValuesEqual(value1: Time | null, value2: Time | null): boolean;
26
+ areValuesEqual(value1: Time | null, value2: Time | null): boolean;
27
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { TimeField } from './TimeField';
2
+ import { FieldRenderProps } from '../BaseFormElement';
3
+ interface TimeFieldInputProps extends FieldRenderProps {
4
+ field: TimeField;
5
+ }
6
+ export declare const TimeFieldInput: import('react').NamedExoticComponent<TimeFieldInputProps>;
7
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './TimeField';
2
+ export * from './TimeFieldInput';
3
+ export * from './typings';
4
+ export * from './utils';
@@ -0,0 +1,8 @@
1
+ import { BaseSerializedField } from '../BaseField';
2
+ export interface SerializedTimeField extends BaseSerializedField<"time"> {
3
+ }
4
+ export type Time = `${number}:${number}`;
5
+ export type TimeRange = {
6
+ to: Time | null;
7
+ from: Time | null;
8
+ };
@@ -0,0 +1,5 @@
1
+ import { Time, TimeRange } from './typings';
2
+ export declare const timeValueRegex: RegExp;
3
+ export declare const isTimeValue: (value: unknown) => value is Time;
4
+ export declare const compareTimeValues: (value1: string, value2: string) => number;
5
+ export declare const isTimeRange: (conditionValue: string | TimeRange) => conditionValue is TimeRange;
@@ -14,6 +14,7 @@ import { ScanField } from './ScanField';
14
14
  import { SelectField } from './SelectField';
15
15
  import { StringField } from './StringField';
16
16
  import { TextField } from './TextField';
17
+ import { TimeField } from './TimeField';
17
18
  import { UploadField } from './UploadField';
18
19
  export declare const FieldTypeToClsMapping: {
19
20
  date: typeof DateField;
@@ -22,6 +23,7 @@ export declare const FieldTypeToClsMapping: {
22
23
  select: typeof SelectField;
23
24
  string: typeof StringField;
24
25
  text: typeof TextField;
26
+ time: typeof TimeField;
25
27
  upload: typeof UploadField;
26
28
  qr: typeof ScanField;
27
29
  "multi-string": typeof MultiStringField;
@@ -21,6 +21,7 @@ export * from './ScanField';
21
21
  export * from './SelectField';
22
22
  export * from './StringField';
23
23
  export * from './TextField';
24
+ export * from './TimeField';
24
25
  export type * from './typings';
25
26
  export * from './UploadField';
26
27
  export * from './utils';
@@ -15,18 +15,19 @@ import { ScanField, SerializedScanField } from './ScanField';
15
15
  import { SelectField, SerializedSelectField } from './SelectField';
16
16
  import { SerializedStringField, StringField } from './StringField';
17
17
  import { SerializedTextField, TextField } from './TextField';
18
+ import { SerializedTimeField, TimeField } from './TimeField';
18
19
  import { SerializedUploadField, UploadField } from './UploadField';
19
20
  export type AnyFormElement = BaseFormElement<any, any>;
20
21
  export type AnyField = BaseField<any, any, any, any>;
21
22
  export type TypeOfField<TField extends AnyFormElement> = TField extends BaseFormElement<infer TType, infer _TThis> ? TType : never;
22
23
  export type ValueOfField<TField extends AnyField> = TField extends BaseField<infer _TType, infer TValue, infer _TSerializedValue, infer _TThis> ? TValue : never;
23
24
  export type SerializedValueOfField<TField extends AnyField> = TField extends BaseField<infer _TType, infer _TValue, infer TSerializedValue, infer _TThis> ? TSerializedValue : never;
24
- export type Field = BooleanField | CheckboxListField | PassFailField | DateField | MultiSelectField | MultiStringField | NumberField | RadioField | RatingField | ScanField | SelectField | StringField | TextField | UploadField | OTPField;
25
- export type FieldClass = typeof BooleanField | typeof CheckboxListField | typeof PassFailField | typeof DateField | typeof MultiSelectField | typeof MultiStringField | typeof NumberField | typeof RadioField | typeof RatingField | typeof ScanField | typeof SelectField | typeof StringField | typeof TextField | typeof UploadField | typeof OTPField;
25
+ export type Field = BooleanField | CheckboxListField | PassFailField | DateField | MultiSelectField | MultiStringField | NumberField | RadioField | RatingField | ScanField | SelectField | StringField | TextField | TimeField | UploadField | OTPField;
26
+ export type FieldClass = typeof BooleanField | typeof CheckboxListField | typeof PassFailField | typeof DateField | typeof MultiSelectField | typeof MultiStringField | typeof NumberField | typeof RadioField | typeof RatingField | typeof ScanField | typeof SelectField | typeof StringField | typeof TextField | typeof TimeField | typeof UploadField | typeof OTPField;
26
27
  export type FieldType = TypeOfField<Field> | TypeOfField<FieldSection>;
27
28
  export type FieldValue = ValueOfField<Field>;
28
29
  export type SerializedFieldValue = SerializedValueOfField<Field>;
29
- export type SerializedField = SerializedTextField | SerializedBooleanField | SerializedNumberField | SerializedDateField | SerializedStringField | SerializedSelectField | SerializedFieldSection | SerializedMultiStringField | SerializedMultiSelectField | SerializedUploadField | SerializedScanField | SerializedRadioField | SerializedRatingField | SerializedCheckboxListField | SerializedOTPField | SerializedPassFailField;
30
+ export type SerializedField = SerializedTextField | SerializedBooleanField | SerializedNumberField | SerializedDateField | SerializedStringField | SerializedSelectField | SerializedTimeField | SerializedFieldSection | SerializedMultiStringField | SerializedMultiSelectField | SerializedUploadField | SerializedScanField | SerializedRadioField | SerializedRatingField | SerializedCheckboxListField | SerializedOTPField | SerializedPassFailField;
30
31
  export type SerializedOnlyField = Exclude<SerializedField, SerializedFieldSection>;
31
32
  export interface FieldsManager {
32
33
  readonly fields: Field[];
@@ -4,5 +4,6 @@ export * from './file';
4
4
  export * from './number';
5
5
  export * from './passFailStatus';
6
6
  export * from './string';
7
+ export * from './time';
7
8
  export type * from './typings';
8
9
  export * from './utils';
@@ -0,0 +1,8 @@
1
+ import { TimeRange } from '../fields';
2
+ import { ConditionModifier } from './conditionModifier';
3
+ export declare const TimeEqualsConditionModifier: ConditionModifier<`${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
4
+ export declare const TimeNotEqualsConditionModifier: ConditionModifier<`${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
5
+ export declare const TimeBeforeConditionModifier: ConditionModifier<`${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
6
+ export declare const TimeAfterConditionModifier: ConditionModifier<`${number}:${number}`, `${number}:${number}`, `${number}:${number}`>;
7
+ export declare const TimeRangeInConditionModifier: ConditionModifier<`${number}:${number}`, TimeRange, TimeRange>;
8
+ export declare const TimeRangeNotInConditionModifier: ConditionModifier<`${number}:${number}`, TimeRange, TimeRange>;