@k3-universe/react-kit 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -19034,6 +19034,7 @@ function Autocomplete({
19034
19034
  mode,
19035
19035
  options = EMPTY_OPTIONS,
19036
19036
  fetcher,
19037
+ fetcherFilter,
19037
19038
  pageSize = DEFAULT_PAGE_SIZE,
19038
19039
  value: controlledValue,
19039
19040
  onChange,
@@ -19124,6 +19125,7 @@ function Autocomplete({
19124
19125
  try {
19125
19126
  const res = await fetcher({
19126
19127
  search: debouncedSearch,
19128
+ moreFilter: fetcherFilter,
19127
19129
  cursor: nextCursor ?? null,
19128
19130
  page,
19129
19131
  pageSize
@@ -19149,7 +19151,7 @@ function Autocomplete({
19149
19151
  setLoading(false);
19150
19152
  }
19151
19153
  }
19152
- }, [mode, fetcher, debouncedSearch, nextCursor, page, pageSize, options]);
19154
+ }, [mode, fetcher, fetcherFilter, debouncedSearch, nextCursor, page, pageSize, options]);
19153
19155
  const loadRef = useRef(load);
19154
19156
  useEffect(() => {
19155
19157
  loadRef.current = load;
@@ -19655,6 +19657,7 @@ function AutocompleteField({ field, value, onChange, className }) {
19655
19657
  mode: field.autocompleteMode ?? "client",
19656
19658
  options,
19657
19659
  fetcher: field.fetcher,
19660
+ fetcherFilter: field.fetcherFilter,
19658
19661
  pageSize: field.pageSize,
19659
19662
  multiple: field.multiple,
19660
19663
  allowCustomValue: field.allowCustomValue,
@@ -32519,6 +32522,7 @@ function FormBuilderField({ field, control, onChange, parentPath }) {
32519
32522
  field.className
32520
32523
  );
32521
32524
  const renderField = () => {
32525
+ var _a;
32522
32526
  switch (field.type) {
32523
32527
  case "hidden":
32524
32528
  return /* @__PURE__ */ jsx(
@@ -32775,6 +32779,14 @@ function FormBuilderField({ field, control, onChange, parentPath }) {
32775
32779
  className: baseClassName
32776
32780
  }
32777
32781
  );
32782
+ case "custom_field":
32783
+ return (_a = field.customRender) == null ? void 0 : _a.call(field, {
32784
+ field,
32785
+ fieldPath,
32786
+ control,
32787
+ value: controllerField.value,
32788
+ handleChange
32789
+ });
32778
32790
  default:
32779
32791
  return /* @__PURE__ */ jsx(
32780
32792
  TextField,
@@ -33115,7 +33127,7 @@ function FormBuilder({
33115
33127
  }
33116
33128
  break;
33117
33129
  default:
33118
- fieldSchema = string();
33130
+ fieldSchema = any();
33119
33131
  }
33120
33132
  return field.required ? fieldSchema : fieldSchema.optional();
33121
33133
  };
@@ -7,6 +7,6 @@ export interface FormBuilderFieldProps<TFieldValues extends FieldValues = FieldV
7
7
  onFieldChange?: (name: import('react-hook-form').Path<TFieldValues> | string, value: unknown, allValues: TFieldValues) => void;
8
8
  parentPath?: string;
9
9
  }
10
- export declare function FormBuilderField<TFieldValues extends FieldValues = FieldValues, TName extends string | Path<TFieldValues> = Path<TFieldValues>>({ field, control, onChange, parentPath }: FormBuilderFieldProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function FormBuilderField<TFieldValues extends FieldValues = FieldValues, TName extends string | Path<TFieldValues> = Path<TFieldValues>>({ field, control, onChange, parentPath }: FormBuilderFieldProps<TFieldValues, TName>): string | number | bigint | boolean | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
11
11
  export default FormBuilderField;
12
12
  //# sourceMappingURL=FormBuilderField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormBuilderField.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/FormBuilderField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAwBvD,MAAM,WAAW,qBAAqB,CACpC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAE9D,KAAK,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/H,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAC9D,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,2CAwVrF;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"FormBuilderField.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/FormBuilderField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAwBvD,MAAM,WAAW,qBAAqB,CACpC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAE9D,KAAK,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/H,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAC9D,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,2WAgWrF;AAED,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/AutocompleteField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAgDxF"}
1
+ {"version":3,"file":"AutocompleteField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/AutocompleteField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAiDxF"}
@@ -1,11 +1,11 @@
1
- import { default as React } from 'react';
1
+ import { default as React, ReactNode } from 'react';
2
2
  import { Control, DeepPartial, FieldValues, Path, UseFormGetValues, UseFormReturn, UseFormSetValue, DefaultValues } from 'react-hook-form';
3
3
  import { z } from 'zod';
4
4
  import { Accept } from 'react-dropzone';
5
5
  import { SectionFlexOptions, SectionGridOptions, SectionLayout } from '../section/types';
6
6
  import { AutocompleteFetcher, AutocompleteOption } from '../../components/autocomplete/types';
7
7
  import { FileRecord, FileUploaderLayout } from '../../components/fileuploader/types';
8
- export type FieldType = 'text' | 'email' | 'password' | 'number' | 'textarea' | 'select' | 'autocomplete' | 'checkbox' | 'switch' | 'radio' | 'date' | 'date_picker' | 'date_range' | 'month' | 'month_range' | 'time' | 'time_range' | 'date_time' | 'date_time_range' | 'file' | 'hidden' | 'object' | 'array';
8
+ export type FieldType = 'text' | 'email' | 'password' | 'number' | 'textarea' | 'select' | 'autocomplete' | 'checkbox' | 'switch' | 'radio' | 'date' | 'date_picker' | 'date_range' | 'month' | 'month_range' | 'time' | 'time_range' | 'date_time' | 'date_time_range' | 'file' | 'hidden' | 'object' | 'array' | 'custom_field';
9
9
  export interface Dependency<TFieldValues extends FieldValues> {
10
10
  field: Path<TFieldValues>;
11
11
  condition: (value: unknown) => boolean;
@@ -27,6 +27,7 @@ export interface FormBuilderFieldConfig<TFieldValues extends FieldValues = Field
27
27
  }[];
28
28
  autocompleteMode?: 'client' | 'server';
29
29
  fetcher?: AutocompleteFetcher;
30
+ fetcherFilter?: () => Record<string, string | number | boolean | null>;
30
31
  pageSize?: number;
31
32
  searchPlaceholder?: string;
32
33
  renderOption?: (option: AutocompleteOption, selected: boolean) => React.ReactNode;
@@ -127,6 +128,13 @@ export interface FormBuilderFieldConfig<TFieldValues extends FieldValues = Field
127
128
  fileOnRemove?: (file: FileRecord) => void | Promise<void>;
128
129
  fileOnRetry?: (file: FileRecord) => void;
129
130
  fileOnRetryAll?: (files: FileRecord[]) => void;
131
+ customRender?: (fieldControl: {
132
+ field: FormBuilderFieldConfig<TFieldValues, string>;
133
+ fieldPath: string;
134
+ control: Control<TFieldValues>;
135
+ value: TFieldValues;
136
+ handleChange: (value: unknown, ...extras: unknown[]) => void;
137
+ }) => React.ReactNode;
130
138
  }
131
139
  export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = FieldValues> {
132
140
  id?: string;
@@ -143,7 +151,7 @@ export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = Fie
143
151
  hidden?: boolean;
144
152
  tabs?: Array<{
145
153
  id: string;
146
- label: React.ReactNode;
154
+ label: ReactNode;
147
155
  sections: Array<FormBuilderSectionConfig<TFieldValues>>;
148
156
  className?: string;
149
157
  contentClassName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/form/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/form/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,IAAI,EACJ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,cAAc,GACd,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,aAAa,GACb,YAAY,GACZ,OAAO,GACP,aAAa,GACb,MAAM,GACN,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,cAAc,CAAA;AAElB,MAAM,WAAW,UAAU,CAAC,YAAY,SAAS,WAAW;IAC1D,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACtC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB,CACrC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAE9D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;IAC5D,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACtC,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAA;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAA;IACjE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sBAAsB,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAA;IACzE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAChF,UAAU,CAAC,EACP,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAClB;QACE,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,GAAG,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QACxC,GAAG,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QACxC,SAAS,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9C,SAAS,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9C,QAAQ,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;QAC7C,QAAQ,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAC9C,CAAA;IAEL,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,MAAM,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,YAAY,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IAC9C,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,KACtC,IAAI,CAAA;IACT,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACzC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAA;QAC3C,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAC9B,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;QAClC,OAAO,EAAE,MAAM,IAAI,CAAA;QACnB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KACxB,KAAK,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE;QACZ,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACzB,KAAK,EAAE,OAAO,CAAA;KACf,CAAA;IACD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IACtD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9F,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;IAC9C,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE;QAC5B,KAAK,EAAE,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/B,KAAK,EAAE,YAAY,CAAC;QACpB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KAC9D,KAAK,KAAK,CAAC,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,wBAAwB,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW;IACtF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAA;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAA;QACvD,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAC,CAAA;IACF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,gBAAgB,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW;IAC9E,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAA;IACvD,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAC9E,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EACjC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,YAAY,KACpB,IAAI,CAAA;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CACnC;AAGD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
@@ -4,6 +4,7 @@ export type AutocompleteProps<T = unknown> = {
4
4
  mode: AutocompleteMode;
5
5
  options?: AutocompleteOption<T>[];
6
6
  fetcher?: AutocompleteFetcher<T>;
7
+ fetcherFilter?: () => Record<string, string | number | boolean | null>;
7
8
  pageSize?: number;
8
9
  /**
9
10
  * Value can be a single primitive or an array when `multiple` is true
@@ -48,6 +49,6 @@ export type AutocompleteProps<T = unknown> = {
48
49
  */
49
50
  loadSelected?: (values: Array<string | number>) => Promise<AutocompleteOption<T>[]>;
50
51
  };
51
- export declare function Autocomplete<T = unknown>({ mode, options, fetcher, pageSize, value: controlledValue, onChange, multiple, placeholder, disabled, className, emptyText, renderOption, searchPlaceholder, defaultOpen, defaultValue, allowCustomValue, chipVariant, chipClassName, clearable, initialSelectedOptions, loadSelected, }: AutocompleteProps<T>): import("react/jsx-runtime").JSX.Element;
52
+ export declare function Autocomplete<T = unknown>({ mode, options, fetcher, fetcherFilter, pageSize, value: controlledValue, onChange, multiple, placeholder, disabled, className, emptyText, renderOption, searchPlaceholder, defaultOpen, defaultValue, allowCustomValue, chipVariant, chipClassName, clearable, initialSelectedOptions, loadSelected, }: AutocompleteProps<T>): import("react/jsx-runtime").JSX.Element;
52
53
  export default Autocomplete;
53
54
  //# sourceMappingURL=Autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0B/B,OAAO,KAAK,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAElB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5C,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,CACV,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EACtD,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAC9D,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,KAChB,IAAI,CAAC;IACV,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CACd,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,QAAQ,EAAE,OAAO,KACb,KAAK,CAAC,SAAS,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/D,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAClE,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAChF;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACpF,CAAC;AAMF,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,EACzC,IAAI,EACJ,OAAkD,EAClD,OAAO,EACP,QAA4B,EAC5B,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,QAAgB,EAChB,WAAyB,EACzB,QAAQ,EACR,SAAS,EACT,SAA8B,EAC9B,YAAY,EACZ,iBAA+B,EAC/B,WAAW,EACX,YAAY,EACZ,gBAAwB,EACxB,WAAyB,EACzB,aAAa,EACb,SAAgB,EAChB,sBAAsB,EACtB,YAAY,GACZ,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CA8qBtB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export type AutocompleteOption<T = unknown> = {
6
6
  };
7
7
  export type AutocompleteFetchParams = {
8
8
  search: string;
9
+ moreFilter?: () => Record<string, string | number | boolean | null>;
9
10
  cursor?: string | number | null;
10
11
  page: number;
11
12
  pageSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5C,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,GAAG,CAAC,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAAI;IACjD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC7C,MAAM,EAAE,uBAAuB,KAC5B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5C,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,GAAG,CAAC,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAAI;IACjD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC7C,MAAM,EAAE,uBAAuB,KAC5B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k3-universe/react-kit",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -257,7 +257,7 @@ export function FormBuilder<TFieldValues extends FieldValues = FieldValues>({
257
257
  }
258
258
  break;
259
259
  default:
260
- fieldSchema = z.string();
260
+ fieldSchema = z.any();
261
261
  }
262
262
 
263
263
  return field.required ? fieldSchema : fieldSchema.optional();
@@ -300,6 +300,14 @@ export function FormBuilderField<
300
300
  className={baseClassName}
301
301
  />
302
302
  );
303
+ case 'custom_field':
304
+ return field.customRender?.({
305
+ field,
306
+ fieldPath,
307
+ control,
308
+ value: controllerField.value,
309
+ handleChange
310
+ });
303
311
  default:
304
312
  return (
305
313
  <TextField
@@ -32,6 +32,7 @@ export function AutocompleteField({ field, value, onChange, className }: FieldRe
32
32
  mode={field.autocompleteMode ?? 'client'}
33
33
  options={options}
34
34
  fetcher={field.fetcher}
35
+ fetcherFilter={field.fetcherFilter}
35
36
  pageSize={field.pageSize}
36
37
  multiple={field.multiple}
37
38
  allowCustomValue={field.allowCustomValue}
@@ -14,6 +14,7 @@ import type { Accept } from 'react-dropzone'
14
14
  import type { SectionFlexOptions, SectionGridOptions, SectionLayout } from '../section/types'
15
15
  import type { AutocompleteFetcher, AutocompleteOption } from '../../components/autocomplete/types'
16
16
  import type { FileRecord, FileUploaderLayout } from '../../components/fileuploader/types'
17
+ import { ReactNode } from 'react'
17
18
 
18
19
  export type FieldType =
19
20
  | 'text'
@@ -39,6 +40,7 @@ export type FieldType =
39
40
  | 'hidden'
40
41
  | 'object'
41
42
  | 'array'
43
+ | 'custom_field'
42
44
 
43
45
  export interface Dependency<TFieldValues extends FieldValues> {
44
46
  field: Path<TFieldValues>
@@ -62,6 +64,7 @@ export interface FormBuilderFieldConfig<
62
64
  options?: { label: string; value: string | number | null }[]
63
65
  autocompleteMode?: 'client' | 'server'
64
66
  fetcher?: AutocompleteFetcher
67
+ fetcherFilter?: () => Record<string, string | number | boolean | null>
65
68
  pageSize?: number
66
69
  searchPlaceholder?: string
67
70
  renderOption?: (option: AutocompleteOption, selected: boolean) => React.ReactNode
@@ -145,6 +148,13 @@ export interface FormBuilderFieldConfig<
145
148
  fileOnRemove?: (file: FileRecord) => void | Promise<void>
146
149
  fileOnRetry?: (file: FileRecord) => void
147
150
  fileOnRetryAll?: (files: FileRecord[]) => void
151
+ customRender?: (fieldControl: {
152
+ field: FormBuilderFieldConfig<TFieldValues, string>,
153
+ fieldPath: string,
154
+ control: Control<TFieldValues>,
155
+ value: TFieldValues,
156
+ handleChange: (value: unknown, ...extras: unknown[]) => void,
157
+ }) => React.ReactNode
148
158
  }
149
159
 
150
160
  export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = FieldValues> {
@@ -162,7 +172,7 @@ export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = Fie
162
172
  hidden?: boolean
163
173
  tabs?: Array<{
164
174
  id: string
165
- label: React.ReactNode
175
+ label: ReactNode,
166
176
  sections: Array<FormBuilderSectionConfig<TFieldValues>>
167
177
  className?: string
168
178
  contentClassName?: string
@@ -36,6 +36,7 @@ export type AutocompleteProps<T = unknown> = {
36
36
  mode: AutocompleteMode;
37
37
  options?: AutocompleteOption<T>[];
38
38
  fetcher?: AutocompleteFetcher<T>;
39
+ fetcherFilter?: () => Record<string, string | number | boolean | null>,
39
40
  pageSize?: number;
40
41
  /**
41
42
  * Value can be a single primitive or an array when `multiple` is true
@@ -96,6 +97,7 @@ export function Autocomplete<T = unknown>({
96
97
  mode,
97
98
  options = EMPTY_OPTIONS as AutocompleteOption<T>[],
98
99
  fetcher,
100
+ fetcherFilter,
99
101
  pageSize = DEFAULT_PAGE_SIZE,
100
102
  value: controlledValue,
101
103
  onChange,
@@ -206,6 +208,7 @@ export function Autocomplete<T = unknown>({
206
208
  try {
207
209
  const res: AutocompleteFetchResult<T> = await fetcher({
208
210
  search: debouncedSearch,
211
+ moreFilter: fetcherFilter,
209
212
  cursor: nextCursor ?? null,
210
213
  page,
211
214
  pageSize,
@@ -222,8 +225,8 @@ export function Autocomplete<T = unknown>({
222
225
  try {
223
226
  const filtered = debouncedSearch
224
227
  ? options.filter((o) =>
225
- o.label.toLowerCase().includes(debouncedSearch.toLowerCase()),
226
- )
228
+ o.label.toLowerCase().includes(debouncedSearch.toLowerCase()),
229
+ )
227
230
  : options;
228
231
  const start = (page - 1) * pageSize;
229
232
  const slice = filtered.slice(start, start + pageSize);
@@ -234,7 +237,7 @@ export function Autocomplete<T = unknown>({
234
237
  setLoading(false);
235
238
  }
236
239
  }
237
- }, [mode, fetcher, debouncedSearch, nextCursor, page, pageSize, options]);
240
+ }, [mode, fetcher, fetcherFilter, debouncedSearch, nextCursor, page, pageSize, options]);
238
241
 
239
242
  // Keep a ref to latest load() to avoid stale closures
240
243
  const loadRef = useRef(load);
@@ -295,8 +298,8 @@ export function Autocomplete<T = unknown>({
295
298
  const curValues: Array<string | number> = Array.isArray(value)
296
299
  ? (isMultiple ? (value as Array<string | number>) : [])
297
300
  : value !== null && value !== undefined
298
- ? [value as string | number]
299
- : [];
301
+ ? [value as string | number]
302
+ : [];
300
303
  if (curValues.length === 0) return;
301
304
  const missing = curValues.filter(
302
305
  (v) => !labelMapRef.current.has(v) && !options.some((o) => o.value === v),
@@ -441,44 +444,44 @@ export function Autocomplete<T = unknown>({
441
444
  >
442
445
  {selectedOptionsMulti.length > 0
443
446
  ? selectedOptionsMulti.map((opt) => (
444
- <Badge
445
- key={`${opt.value}`}
446
- variant={chipVariant}
447
- className={cn("pr-1", chipClassName)}
447
+ <Badge
448
+ key={`${opt.value}`}
449
+ variant={chipVariant}
450
+ className={cn("pr-1", chipClassName)}
451
+ >
452
+ <span className="truncate max-w-[10rem]">
453
+ {opt.label}
454
+ </span>
455
+ <button
456
+ type="button"
457
+ aria-label={`Remove ${opt.label}`}
458
+ className="ml-1 inline-flex items-center rounded-sm hover:bg-black/5 dark:hover:bg-white/10"
459
+ onMouseDown={(e) => {
460
+ e.preventDefault();
461
+ e.stopPropagation();
462
+ }}
463
+ onClick={(e) => {
464
+ e.preventDefault();
465
+ e.stopPropagation();
466
+ const prevValues = Array.isArray(value)
467
+ ? value
468
+ : [];
469
+ const newValues = prevValues.filter(
470
+ (v) => v !== opt.value,
471
+ );
472
+ if (controlledValue === undefined)
473
+ setValue(newValues);
474
+ const newOptions = newValues.map((v) => ({
475
+ value: v,
476
+ label: getLabel(v),
477
+ }));
478
+ onChange?.(newValues, newOptions);
479
+ }}
448
480
  >
449
- <span className="truncate max-w-[10rem]">
450
- {opt.label}
451
- </span>
452
- <button
453
- type="button"
454
- aria-label={`Remove ${opt.label}`}
455
- className="ml-1 inline-flex items-center rounded-sm hover:bg-black/5 dark:hover:bg-white/10"
456
- onMouseDown={(e) => {
457
- e.preventDefault();
458
- e.stopPropagation();
459
- }}
460
- onClick={(e) => {
461
- e.preventDefault();
462
- e.stopPropagation();
463
- const prevValues = Array.isArray(value)
464
- ? value
465
- : [];
466
- const newValues = prevValues.filter(
467
- (v) => v !== opt.value,
468
- );
469
- if (controlledValue === undefined)
470
- setValue(newValues);
471
- const newOptions = newValues.map((v) => ({
472
- value: v,
473
- label: getLabel(v),
474
- }));
475
- onChange?.(newValues, newOptions);
476
- }}
477
- >
478
- <X className="h-3 w-3" />
479
- </button>
480
- </Badge>
481
- ))
481
+ <X className="h-3 w-3" />
482
+ </button>
483
+ </Badge>
484
+ ))
482
485
  : null}
483
486
  {allowCustomValue ? (
484
487
  <input
@@ -530,11 +533,11 @@ export function Autocomplete<T = unknown>({
530
533
  </span>
531
534
  )}
532
535
  {clearable &&
533
- ((isMultiple && selectedOptionsMulti.length > 0) ||
534
- (!isMultiple &&
535
- value !== null &&
536
- value !== undefined &&
537
- !Array.isArray(value))) ? (
536
+ ((isMultiple && selectedOptionsMulti.length > 0) ||
537
+ (!isMultiple &&
538
+ value !== null &&
539
+ value !== undefined &&
540
+ !Array.isArray(value))) ? (
538
541
  <button
539
542
  type="button"
540
543
  aria-label="Clear selection"
@@ -594,42 +597,42 @@ export function Autocomplete<T = unknown>({
594
597
  >
595
598
  {selectedOptionsMulti.length > 0
596
599
  ? selectedOptionsMulti.map((opt) => (
597
- <Badge
598
- key={`${opt.value}`}
599
- variant={chipVariant}
600
- className={cn("pr-1", chipClassName)}
600
+ <Badge
601
+ key={`${opt.value}`}
602
+ variant={chipVariant}
603
+ className={cn("pr-1", chipClassName)}
604
+ >
605
+ <span className="truncate max-w-[10rem]">
606
+ {opt.label}
607
+ </span>
608
+ <button
609
+ type="button"
610
+ aria-label={`Remove ${opt.label}`}
611
+ className="ml-1 inline-flex items-center rounded-sm hover:bg-black/5 dark:hover:bg-white/10"
612
+ onMouseDown={(e) => {
613
+ e.preventDefault();
614
+ e.stopPropagation();
615
+ }}
616
+ onClick={(e) => {
617
+ e.preventDefault();
618
+ e.stopPropagation();
619
+ const prevValues = Array.isArray(value) ? value : [];
620
+ const newValues = prevValues.filter(
621
+ (v) => v !== opt.value,
622
+ );
623
+ if (controlledValue === undefined)
624
+ setValue(newValues);
625
+ const newOptions = newValues.map((v) => ({
626
+ value: v,
627
+ label: getLabel(v),
628
+ }));
629
+ onChange?.(newValues, newOptions);
630
+ }}
601
631
  >
602
- <span className="truncate max-w-[10rem]">
603
- {opt.label}
604
- </span>
605
- <button
606
- type="button"
607
- aria-label={`Remove ${opt.label}`}
608
- className="ml-1 inline-flex items-center rounded-sm hover:bg-black/5 dark:hover:bg-white/10"
609
- onMouseDown={(e) => {
610
- e.preventDefault();
611
- e.stopPropagation();
612
- }}
613
- onClick={(e) => {
614
- e.preventDefault();
615
- e.stopPropagation();
616
- const prevValues = Array.isArray(value) ? value : [];
617
- const newValues = prevValues.filter(
618
- (v) => v !== opt.value,
619
- );
620
- if (controlledValue === undefined)
621
- setValue(newValues);
622
- const newOptions = newValues.map((v) => ({
623
- value: v,
624
- label: getLabel(v),
625
- }));
626
- onChange?.(newValues, newOptions);
627
- }}
628
- >
629
- <X className="h-3 w-3" />
630
- </button>
631
- </Badge>
632
- ))
632
+ <X className="h-3 w-3" />
633
+ </button>
634
+ </Badge>
635
+ ))
633
636
  : null}
634
637
  {allowCustomValue ? (
635
638
  <input
@@ -678,11 +681,11 @@ export function Autocomplete<T = unknown>({
678
681
  </span>
679
682
  )}
680
683
  {clearable &&
681
- ((isMultiple && selectedOptionsMulti.length > 0) ||
682
- (!isMultiple &&
683
- value !== null &&
684
- value !== undefined &&
685
- !Array.isArray(value))) ? (
684
+ ((isMultiple && selectedOptionsMulti.length > 0) ||
685
+ (!isMultiple &&
686
+ value !== null &&
687
+ value !== undefined &&
688
+ !Array.isArray(value))) ? (
686
689
  <button
687
690
  type="button"
688
691
  aria-label="Clear selection"
@@ -7,6 +7,7 @@ export type AutocompleteOption<T = unknown> = {
7
7
 
8
8
  export type AutocompleteFetchParams = {
9
9
  search: string
10
+ moreFilter?: () => Record<string, string | number | boolean | null>,
10
11
  cursor?: string | number | null
11
12
  page: number
12
13
  pageSize: number