@factorialco/f0-react 1.288.0 → 1.290.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.
@@ -55,7 +55,6 @@ import { LongTextCellValue } from './types/longText';
55
55
  import { NumberCellValue } from './types/number';
56
56
  import { NumberCellValue as NumberCellValue_2 } from '../../value-display/types/number';
57
57
  import { NumberFilterOptions } from './NumberFilter/NumberFilter';
58
- import { NumberFilterValue } from './NumberFilter/NumberFilter';
59
58
  import { Observable } from 'zen-observable-ts';
60
59
  import { Path } from 'react-hook-form';
61
60
  import { PercentageCellValue } from './types/percentage';
@@ -71,6 +70,7 @@ import * as RechartsPrimitive from 'recharts';
71
70
  import { RefAttributes } from 'react';
72
71
  import { RefObject } from 'react';
73
72
  import { ScrollAreaProps } from '@radix-ui/react-scroll-area';
73
+ import { SearchFilterOptions } from './SearchFilter/SearchFilter';
74
74
  import { StatusCellValue } from './types/status';
75
75
  import { StatusCellValue as StatusCellValue_2 } from '../../value-display/types/status';
76
76
  import { SVGProps } from 'react';
@@ -650,6 +650,22 @@ declare type AvatarVariant = DistributiveOmit<({
650
650
  type: "icon";
651
651
  } & F0AvatarIconProps), "size">;
652
652
 
653
+ declare type AvatarVariant_2 = ({
654
+ type: "person";
655
+ } & Omit<F0AvatarPersonProps, "size">) | ({
656
+ type: "team";
657
+ } & Omit<F0AvatarTeamProps, "size">) | ({
658
+ type: "company";
659
+ } & Omit<F0AvatarCompanyProps, "size">) | ({
660
+ type: "file";
661
+ } & Omit<F0AvatarFileProps, "size">) | ({
662
+ type: "flag";
663
+ } & Omit<F0AvatarFlagProps, "size">) | ({
664
+ type: "emoji";
665
+ } & Omit<F0AvatarEmojiProps, "size">) | ({
666
+ type: "icon";
667
+ } & Omit<F0AvatarIconProps, "size">);
668
+
653
669
  export declare const Badge: ({ type, size, icon }: BadgeProps) => JSX_2.Element;
654
670
 
655
671
  export declare interface BadgeProps extends VariantProps<typeof badgeVariants> {
@@ -1337,7 +1353,22 @@ export declare const ChartWidgetEmptyState: ForwardRefExoticComponent<Props_5 &
1337
1353
 
1338
1354
  export declare type ChatWidgetEmptyStateProps = Props_5;
1339
1355
 
1340
- declare type ChildrenResponse<R extends RecordType> = BaseResponse<R> | R[] | NestedResponseWithType<R>;
1356
+ declare type ChildrenPaginationInfo<R extends RecordType> = Omit<InfiniteScrollPaginatedResponse<R>, "type" | "records">;
1357
+
1358
+ declare type ChildrenResponse<R extends RecordType> = NestedResponseWithType<R>;
1359
+
1360
+ declare type ChipLabel = {
1361
+ label: string;
1362
+ } & ({
1363
+ icon: IconType;
1364
+ avatar?: never;
1365
+ } | {
1366
+ icon?: never;
1367
+ avatar: AvatarVariant_2;
1368
+ } | {
1369
+ icon?: never;
1370
+ avatar?: never;
1371
+ });
1341
1372
 
1342
1373
  export declare function ClockInControls({ trackedMinutes, remainingMinutes, data, labels, locationId, locations, canShowLocation, locationSelectorDisabled, onClockIn, onClockOut, onBreak, breakTypes, onChangeBreakTypeId, canShowBreakButton, canSeeGraph, canSeeRemainingTime, onChangeLocationId, canShowProject, projectSelectorElement, breakTypeName, }: ClockInControlsProps): JSX_2.Element;
1343
1374
 
@@ -1876,11 +1907,11 @@ export declare type DataSourceDefinition<R extends RecordType = RecordType, Filt
1876
1907
  currentGrouping?: GroupingState<R, Grouping>;
1877
1908
  /*******************************************************/
1878
1909
  /***** NESTED RECORDS ***************************************************/
1879
- fetchChildren?: (item: R, filters?: FiltersState<FiltersDefinition>) => Promise<ChildrenResponse<R>>;
1910
+ fetchChildren?: (item: R, filters?: FiltersState<FiltersDefinition>, pagination?: ChildrenPaginationInfo<R>) => Promise<ChildrenResponse<R>>;
1880
1911
  /** Function to determine if an item has children */
1881
1912
  itemsWithChildren?: (item: R) => boolean;
1882
1913
  /** Function to get the number of children for an item */
1883
- childrenCount?: (item: R) => number | undefined;
1914
+ childrenCount?: (item: R, pagination?: ChildrenPaginationInfo<R>) => number | undefined;
1884
1915
  };
1885
1916
 
1886
1917
  export declare type DateFilterDefinition = BaseFilterDefinition<"date"> & {
@@ -2181,12 +2212,20 @@ declare const defaultTranslations: {
2181
2212
  readonly equal: "Equal to";
2182
2213
  readonly equalTo: "Equal to {{value}}";
2183
2214
  readonly lessOrEqual: "Less or equal to";
2215
+ readonly lessThan: "Less than";
2184
2216
  readonly greaterOrEqual: "Greater or equal to";
2217
+ readonly greaterThan: "Greater than";
2185
2218
  readonly equalShort: "= {{value}}";
2186
2219
  readonly greaterThanOrEqualShort: ">= {{value}}";
2220
+ readonly greaterThanShort: "> {{value}}";
2187
2221
  readonly lessThanOrEqualShort: "<= {{value}}";
2222
+ readonly lessThanShort: "< {{value}}";
2188
2223
  readonly rangeTitle: "Use range";
2189
- readonly range: "Between {{min}} and {{max}}";
2224
+ readonly range: "{{minStrict}} {{min}} and {{maxStrict}} {{max}}";
2225
+ };
2226
+ readonly search: {
2227
+ readonly relaxed: "Relaxed";
2228
+ readonly strict: "Strict";
2190
2229
  };
2191
2230
  readonly selectAll: "Select all";
2192
2231
  readonly clear: "Clear";
@@ -2509,7 +2548,7 @@ declare const DropdownMenuItem: React_2.ForwardRefExoticComponent<Omit<DropdownM
2509
2548
  inset?: boolean;
2510
2549
  } & React_2.RefAttributes<HTMLDivElement>>;
2511
2550
 
2512
- declare type DropdownProps = Omit<DropdownInternalProps, (typeof privateProps_2)[number]> & {
2551
+ declare type DropdownProps = Omit<DropdownInternalProps, (typeof privateProps_4)[number]> & {
2513
2552
  open?: boolean;
2514
2553
  onOpenChange?: (open: boolean) => void;
2515
2554
  };
@@ -2945,12 +2984,12 @@ declare type FilterTypeContext<Options extends object = never> = {
2945
2984
  i18n: I18nContextType;
2946
2985
  };
2947
2986
 
2948
- declare type FilterTypeDefinition<Value = unknown, Options extends object = never, EmptyValue = Value> = {
2949
- /** Check if the value is empty */
2987
+ declare type FilterTypeDefinition<Value = unknown, Options extends object = never, EmptyValue = Value, OptionalOptions extends boolean = false> = {
2950
2988
  emptyValue: EmptyValue;
2989
+ /** Check if the value is empty */
2951
2990
  isEmpty: (value: Value | undefined, context: FilterTypeContext<Options>) => boolean;
2952
2991
  /** Render the filter form */
2953
- render: <Schema extends FilterTypeSchema<Options>>(props: {
2992
+ render: <Schema extends FilterTypeSchema<Options, OptionalOptions>>(props: {
2954
2993
  schema: Schema;
2955
2994
  value: Value;
2956
2995
  onChange: (value: Value) => void;
@@ -2959,7 +2998,7 @@ declare type FilterTypeDefinition<Value = unknown, Options extends object = neve
2959
2998
  /**
2960
2999
  * The value label to display in the filter chips
2961
3000
  */
2962
- chipLabel: (value: Value, context: FilterTypeContext<Options>) => string | Promise<string>;
3001
+ chipLabel: (value: Value, context: FilterTypeContext<Options>) => string | ChipLabel | Promise<string | ChipLabel>;
2963
3002
  /**
2964
3003
  * The default options to render a filter of this type, for example max and min date for a date filter, the list of options for an in filter, etc
2965
3004
  */
@@ -2974,14 +3013,27 @@ declare type FilterTypeKey = keyof typeof filterTypes;
2974
3013
 
2975
3014
  declare const filterTypes: {
2976
3015
  readonly in: FilterTypeDefinition<string[], InFilterOptions<string>>;
2977
- readonly search: FilterTypeDefinition<string>;
3016
+ readonly search: FilterTypeDefinition<string | {
3017
+ value: string;
3018
+ strict: boolean;
3019
+ }, SearchFilterOptions, string | {
3020
+ value: string;
3021
+ strict: boolean;
3022
+ }, true>;
2978
3023
  readonly date: FilterTypeDefinition<Date | DateRange | undefined, DateFilterOptions>;
2979
3024
  readonly number: FilterTypeDefinition<NumberFilterValue, NumberFilterOptions>;
2980
3025
  };
2981
3026
 
2982
- declare type FilterTypeSchema<Options extends object = never> = {
2983
- options: Options extends never ? never : Options;
3027
+ declare type FilterTypeSchema<Options extends object = never, OptionalOptions extends boolean = false> = OptionalOptions extends true ? FilterTypeSchemaOptionalOptions<Options> : FilterTypeSchemaRequiredOptions<Options>;
3028
+
3029
+ declare type FilterTypeSchemaOptionalOptions<Options extends object = never> = {
3030
+ label: string;
3031
+ options?: Options extends never ? never : Options;
3032
+ };
3033
+
3034
+ declare type FilterTypeSchemaRequiredOptions<Options extends object = never> = {
2984
3035
  label: string;
3036
+ options: Options extends never ? never : Options;
2985
3037
  };
2986
3038
 
2987
3039
  /**
@@ -2992,7 +3044,7 @@ declare type FilterTypeSchema<Options extends object = never> = {
2992
3044
  * This type is used to ensure type safety when working with filter values.
2993
3045
  * @template T - The filter definition type
2994
3046
  */
2995
- export declare type FilterValue<T extends FilterDefinition> = T extends InFilterDefinition<infer U> ? U[] : T extends SearchFilterDefinition ? string : T extends DateFilterDefinition ? DateRange | Date | undefined : T extends NumberFilterDefinition ? [number | undefined, number | undefined] | undefined : never;
3047
+ export declare type FilterValue<T extends FilterDefinition> = T extends InFilterDefinition<infer U> ? U[] : T extends SearchFilterDefinition ? string : T extends DateFilterDefinition ? DateRange | Date | undefined : T extends NumberFilterDefinition ? NumberFilterValue | undefined : never;
2996
3048
 
2997
3049
  /**
2998
3050
  * Extracts the value type for a specific filter key from a FiltersDefinition.
@@ -3339,9 +3391,9 @@ export declare type InfiniteScrollPaginatedResponse<TRecord> = BasePaginatedResp
3339
3391
  hasMore: boolean;
3340
3392
  };
3341
3393
 
3342
- export declare const Input: <T extends string = string>({ type, ...props }: InputProps<T>) => JSX_2.Element;
3394
+ export declare const Input: <T extends string>(props: InputProps<T>) => JSX_2.Element;
3343
3395
 
3344
- declare const Input_2: React_2.ForwardRefExoticComponent<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "size"> & Pick<InputFieldProps<string>, "label" | "onChange" | "role" | "onFocus" | "onBlur" | "disabled" | "maxLength" | "required" | "size" | "loading" | "status" | "error" | "icon" | "hideLabel" | "append" | "labelIcon" | "onClickContent" | "hint" | "readonly" | "clearable" | "autocomplete" | "onClear" | "isEmpty" | "emptyValue" | "hideMaxLength" | "appendTag" | "lengthProvider"> & React_2.RefAttributes<HTMLInputElement>>;
3396
+ declare const Input_2: React_2.ForwardRefExoticComponent<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "size"> & Pick<InputFieldProps<string>, "label" | "onChange" | "role" | "onFocus" | "onBlur" | "disabled" | "maxLength" | "required" | "size" | "loading" | "status" | "error" | "icon" | "hideLabel" | "append" | "labelIcon" | "onClickContent" | "hint" | "readonly" | "clearable" | "autocomplete" | "onClear" | "isEmpty" | "emptyValue" | "hideMaxLength" | "appendTag" | "lengthProvider" | "buttonToggle"> & React_2.RefAttributes<HTMLInputElement>>;
3345
3397
 
3346
3398
  declare const INPUTFIELD_SIZES: readonly ["sm", "md"];
3347
3399
 
@@ -3404,6 +3456,16 @@ declare type InputFieldProps<T> = {
3404
3456
  */
3405
3457
  offset?: number;
3406
3458
  };
3459
+ /**
3460
+ * Renders a button toggle inside the input field
3461
+ */
3462
+ buttonToggle?: {
3463
+ label: string | [string, string];
3464
+ icon: IconType | [IconType, IconType];
3465
+ selected: boolean;
3466
+ disabled?: boolean;
3467
+ onChange: (selected: boolean) => void;
3468
+ };
3407
3469
  };
3408
3470
 
3409
3471
  declare type InputFieldSize = (typeof INPUTFIELD_SIZES)[number];
@@ -3420,11 +3482,13 @@ declare const inputFieldStatus: readonly ["default", "warning", "info", "error"]
3420
3482
 
3421
3483
  declare type InputFieldStatusType = (typeof inputFieldStatus)[number];
3422
3484
 
3423
- export declare type InputProps<T extends string> = Pick<ComponentProps<typeof Input_2>, "ref"> & Pick<InputFieldProps<T>, "autoFocus" | "required" | "disabled" | "size" | "onChange" | "value" | "placeholder" | "clearable" | "maxLength" | "hideMaxLength" | "label" | "labelIcon" | "icon" | "hideLabel" | "name" | "error" | "status" | "hint" | "autocomplete"> & {
3485
+ declare type InputInternalProps<T extends string> = Pick<ComponentProps<typeof Input_2>, "ref"> & Pick<InputFieldProps<T>, "autoFocus" | "required" | "disabled" | "size" | "onChange" | "value" | "placeholder" | "clearable" | "maxLength" | "label" | "labelIcon" | "icon" | "hideLabel" | "name" | "error" | "status" | "hint" | "autocomplete" | "buttonToggle" | "hideMaxLength"> & {
3424
3486
  type?: Exclude<HTMLInputTypeAttribute, "number">;
3425
3487
  onPressEnter?: () => void;
3426
3488
  };
3427
3489
 
3490
+ export declare type InputProps<T extends string> = Omit<InputInternalProps<T>, (typeof privateProps_2)[number]>;
3491
+
3428
3492
  declare const internalAvatarColors: readonly ["viridian", "malibu", "yellow", "purple", "lilac", "barbie", "smoke", "army", "flubber", "indigo", "camel"];
3429
3493
 
3430
3494
  declare type InternalAvatarProps = React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> & {
@@ -3900,6 +3964,7 @@ declare type NestedKeyOf<T> = {
3900
3964
  declare type NestedResponseWithType<R extends RecordType> = {
3901
3965
  records: R[];
3902
3966
  type?: NestedVariant;
3967
+ paginationInfo?: ChildrenPaginationInfo<R>;
3903
3968
  };
3904
3969
 
3905
3970
  declare type NestedVariant = "basic" | "detailed";
@@ -3968,12 +4033,28 @@ export declare type NumberFilterDefinition = BaseFilterDefinition<"number"> & {
3968
4033
  declare type NumberFilterOptions_2 = {
3969
4034
  min?: number;
3970
4035
  max?: number;
3971
- modes?: ("range" | "single")[];
4036
+ modes?: readonly ("range" | "single")[];
4037
+ openCloseToggle?: boolean;
3972
4038
  };
3973
4039
 
3974
- export declare const NumberInput: ForwardRefExoticComponent<Omit<NumberInputProps, "ref"> & RefAttributes<HTMLInputElement>>;
4040
+ declare type NumberFilterValue = {
4041
+ mode: "single";
4042
+ value: number | undefined;
4043
+ } | {
4044
+ mode: "range";
4045
+ from: {
4046
+ value: number | undefined;
4047
+ closed: boolean;
4048
+ };
4049
+ to: {
4050
+ value: number | undefined;
4051
+ closed: boolean;
4052
+ };
4053
+ } | undefined;
4054
+
4055
+ export declare const NumberInput: (props: NumberInputProps) => JSX_2.Element;
3975
4056
 
3976
- export declare type NumberInputProps = Omit<InputProps<string>, "value" | "type" | "onChange"> & {
4057
+ declare type NumberInputInternalProps = Omit<InputInternalProps<string>, "value" | "type" | "onChange"> & {
3977
4058
  locale: string;
3978
4059
  value?: number | null;
3979
4060
  step?: number;
@@ -3984,6 +4065,8 @@ export declare type NumberInputProps = Omit<InputProps<string>, "value" | "type"
3984
4065
  units?: string;
3985
4066
  };
3986
4067
 
4068
+ export declare type NumberInputProps = Omit<NumberInputInternalProps, (typeof privateProps_3)[number]>;
4069
+
3987
4070
  declare type NumericQuestionProps = BaseQuestionPropsForOtherQuestionComponents & {
3988
4071
  value?: number | null;
3989
4072
  };
@@ -4071,7 +4154,7 @@ export declare interface OneCalendarInternalProps {
4071
4154
  compact?: boolean;
4072
4155
  }
4073
4156
 
4074
- export declare type OneCalendarProps = Omit<OneCalendarInternalProps, (typeof privateProps_3)[number]>;
4157
+ export declare type OneCalendarProps = Omit<OneCalendarInternalProps, (typeof privateProps_5)[number]>;
4075
4158
 
4076
4159
  /**
4077
4160
  * @experimental This is an experimental component use it at your own risk
@@ -4581,11 +4664,15 @@ export declare const PrivateBox: FC<PropsWithChildren>;
4581
4664
 
4582
4665
  declare const privateProps: readonly ["append", "className", "pressed", "compact", "noTitle", "noAutoTooltip", "style"];
4583
4666
 
4584
- declare const privateProps_2: readonly [];
4667
+ declare const privateProps_2: readonly ["buttonToggle"];
4585
4668
 
4586
- declare const privateProps_3: readonly ["compact"];
4669
+ declare const privateProps_3: readonly ["buttonToggle"];
4587
4670
 
4588
- declare const privateProps_4: readonly ["delay"];
4671
+ declare const privateProps_4: readonly [];
4672
+
4673
+ declare const privateProps_5: readonly ["compact"];
4674
+
4675
+ declare const privateProps_6: readonly ["delay"];
4589
4676
 
4590
4677
  declare type ProductUpdate = {
4591
4678
  title: string;
@@ -5726,7 +5813,7 @@ declare type TooltipInternalProps = {
5726
5813
  description: string;
5727
5814
  });
5728
5815
 
5729
- export declare type TooltipProps = Omit<TooltipInternalProps, (typeof privateProps_4)[number]>;
5816
+ export declare type TooltipProps = Omit<TooltipInternalProps, (typeof privateProps_6)[number]>;
5730
5817
 
5731
5818
  declare interface TranscriptLabels {
5732
5819
  deleteBlock: string;
@@ -6145,31 +6232,6 @@ declare global {
6145
6232
  }
6146
6233
 
6147
6234
 
6148
- declare module "gridstack" {
6149
- interface GridStackWidget {
6150
- id?: string;
6151
- allowedSizes?: Array<{
6152
- w: number;
6153
- h: number;
6154
- }>;
6155
- renderFn?: () => React.ReactElement | null;
6156
- meta?: Record<string, unknown>;
6157
- }
6158
- interface GridStackNode {
6159
- id?: string;
6160
- w?: number;
6161
- h?: number;
6162
- x?: number;
6163
- y?: number;
6164
- allowedSizes?: Array<{
6165
- w: number;
6166
- h: number;
6167
- }>;
6168
- renderFn?: () => React.ReactElement | null;
6169
- }
6170
- }
6171
-
6172
-
6173
6235
  declare module "@tiptap/core" {
6174
6236
  interface Commands<ReturnType> {
6175
6237
  aiBlock: {
@@ -6197,8 +6259,28 @@ declare module "@tiptap/core" {
6197
6259
  }
6198
6260
 
6199
6261
 
6200
- declare namespace Calendar {
6201
- var displayName: string;
6262
+ declare module "gridstack" {
6263
+ interface GridStackWidget {
6264
+ id?: string;
6265
+ allowedSizes?: Array<{
6266
+ w: number;
6267
+ h: number;
6268
+ }>;
6269
+ renderFn?: () => React.ReactElement | null;
6270
+ meta?: Record<string, unknown>;
6271
+ }
6272
+ interface GridStackNode {
6273
+ id?: string;
6274
+ w?: number;
6275
+ h?: number;
6276
+ x?: number;
6277
+ y?: number;
6278
+ allowedSizes?: Array<{
6279
+ w: number;
6280
+ h: number;
6281
+ }>;
6282
+ renderFn?: () => React.ReactElement | null;
6283
+ }
6202
6284
  }
6203
6285
 
6204
6286
 
@@ -6209,3 +6291,8 @@ declare module "@tiptap/core" {
6209
6291
  };
6210
6292
  }
6211
6293
  }
6294
+
6295
+
6296
+ declare namespace Calendar {
6297
+ var displayName: string;
6298
+ }