soda-heroui 0.0.3 → 0.0.5

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.
@@ -2,6 +2,6 @@ import { ReactNode } from "react";
2
2
  import { Autocomplete } from "@heroui/react";
3
3
  import { Key } from "@react-types/shared";
4
4
  import { FieldComponentProps } from "soda-tanstack-form";
5
- export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, T extends object = object> extends FieldComponentProps<typeof Autocomplete<T>, FieldValue> {
5
+ export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object> extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {
6
6
  }
7
- export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, T extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, T>): ReactNode;
7
+ export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/FormAutocomplete.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, T extends object = object>\n extends FieldComponentProps<typeof Autocomplete<T>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, T extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, T>): ReactNode {\n return (\n <Autocomplete<T>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA6B;AAI7B,0BAA6B;AAKtB,SAAS,iBAAkG;AAAA,EAC9G;AAAA,EACA,GAAG;AACP,GAAoD;AAChD,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAa,MAAM,MAAM,SAAS;AAAA,MAClC,mBAAmB,WAAS,MAAM,aAAc,SAAS,MAAwB;AAAA,MACjF,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>\n extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {\n return (\n <Autocomplete<RenderItem>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA6B;AAI7B,0BAA6B;AAKtB,SAAS,iBAA2G;AAAA,EACvH;AAAA,EACA,GAAG;AACP,GAA6D;AACzD,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAa,MAAM,MAAM,SAAS;AAAA,MAClC,mBAAmB,WAAS,MAAM,aAAc,SAAS,MAAwB;AAAA,MACjF,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
6
6
  "names": []
7
7
  }
@@ -2,7 +2,7 @@ import { Select } from "@heroui/react";
2
2
  import { Key } from "@react-types/shared";
3
3
  import { FieldComponentProps } from "soda-tanstack-form";
4
4
  import { StrictOmit } from "soda-type";
5
- export interface FormSelectProps<Value extends Key | undefined = Key | undefined, Multiple extends boolean = false, T extends object = object, FieldValue = Multiple extends true ? Value[] : Value> extends StrictOmit<FieldComponentProps<typeof Select<T>, FieldValue>, "multiple"> {
5
+ export interface FormSelectProps<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
6
6
  multiple?: Multiple;
7
7
  }
8
- export declare function FormSelect<Value extends Key | undefined = Key | undefined, Multiple extends boolean = false, T extends object = object, FieldValue = Multiple extends true ? Value[] : Value>({ field, multiple, ...rest }: FormSelectProps<Value, Multiple, T, FieldValue>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function FormSelect<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>): import("react/jsx-runtime").JSX.Element;
@@ -30,7 +30,7 @@ function FormSelect({ field, multiple, ...rest }) {
30
30
  return /* @__PURE__ */ React.createElement(
31
31
  import_react.Select,
32
32
  {
33
- selectedKeys: Array.isArray(field.state.value) ? field.state.value.filter(import_deepsea_tools.isNonNullable) : (0, import_deepsea_tools.isNonNullable)(field.state.value) ? [field.state.value] : [],
33
+ selectedKeys: (0, import_deepsea_tools.isNonNullable)(field.state.value) ? multiple ? field.state.value : [field.state.value] : [],
34
34
  onSelectionChange: (keys) => {
35
35
  const value = Array.from(keys);
36
36
  field.handleChange(multiple ? value : value.at(0));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/FormSelect.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Value extends Key | undefined = Key | undefined,\n Multiple extends boolean = false,\n T extends object = object,\n FieldValue = Multiple extends true ? Value[] : Value,\n> extends StrictOmit<FieldComponentProps<typeof Select<T>, FieldValue>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Value extends Key | undefined = Key | undefined,\n Multiple extends boolean = false,\n T extends object = object,\n FieldValue = Multiple extends true ? Value[] : Value,\n>({ field, multiple, ...rest }: FormSelectProps<Value, Multiple, T, FieldValue>) {\n return (\n <Select<T>\n selectedKeys={\n Array.isArray(field.state.value) ? field.state.value.filter(isNonNullable) : isNonNullable(field.state.value) ? [field.state.value] : []\n }\n onSelectionChange={keys => {\n const value = Array.from(keys) as string[]\n field.handleChange((multiple ? value : value.at(0)) as FieldValue)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAuB;AAEvB,2BAA8B;AAI9B,0BAA6B;AAWtB,SAAS,WAKd,EAAE,OAAO,UAAU,GAAG,KAAK,GAAoD;AAC7E,SACI;AAAA,IAAC;AAAA;AAAA,MACG,cACI,MAAM,QAAQ,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,OAAO,kCAAa,QAAI,oCAAc,MAAM,MAAM,KAAK,IAAI,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC;AAAA,MAE3I,mBAAmB,UAAQ;AACvB,cAAM,QAAQ,MAAM,KAAK,IAAI;AAC7B,cAAM,aAAc,WAAW,QAAQ,MAAM,GAAG,CAAC,CAAgB;AAAA,MACrE;AAAA,MACA,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {\n return (\n <Select<RenderItem>\n selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}\n onSelectionChange={keys => {\n const value = Array.from(keys)\n field.handleChange((multiple ? value : value.at(0)) as Value)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAuB;AAEvB,2BAA8B;AAI9B,0BAA6B;AAUtB,SAAS,WAId,EAAE,OAAO,UAAU,GAAG,KAAK,GAAiD;AAC1E,SACI;AAAA,IAAC;AAAA;AAAA,MACG,kBAAc,oCAAc,MAAM,MAAM,KAAK,IAAK,WAAY,MAAM,MAAM,QAAkB,CAAC,MAAM,MAAM,KAAY,IAAK,CAAC;AAAA,MAC3H,mBAAmB,UAAQ;AACvB,cAAM,QAAQ,MAAM,KAAK,IAAI;AAC7B,cAAM,aAAc,WAAW,QAAQ,MAAM,GAAG,CAAC,CAAW;AAAA,MAChE;AAAA,MACA,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@ import { ReactNode } from "react";
2
2
  import { Autocomplete } from "@heroui/react";
3
3
  import { Key } from "@react-types/shared";
4
4
  import { FieldComponentProps } from "soda-tanstack-form";
5
- export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, T extends object = object> extends FieldComponentProps<typeof Autocomplete<T>, FieldValue> {
5
+ export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object> extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {
6
6
  }
7
- export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, T extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, T>): ReactNode;
7
+ export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode;
@@ -1 +1 @@
1
- {"version":3,"names":["Autocomplete","ErrorMessage","jsx","_jsx","FormAutocomplete","field","rest","selectedKey","state","value","onSelectionChange","handleChange","undefined","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormAutocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, T extends object = object>\n extends FieldComponentProps<typeof Autocomplete<T>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, T extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, T>): ReactNode {\n return (\n <Autocomplete<T>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,YAAY,QAAQ,eAAe;AAI5C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAK7C,OAAO,SAASC,gBAAgBA,CAAkF;EAC9GC,KAAK;EACL,GAAGC;AAC+B,CAAC,EAAa;EAChD,oBACIH,IAAA,CAACH,YAAY;IACTO,WAAW,EAAEF,KAAK,CAACG,KAAK,CAACC,KAAK,IAAI,IAAK;IACvCC,iBAAiB,EAAED,KAAK,IAAIJ,KAAK,CAACM,YAAY,CAAEF,KAAK,IAAIG,SAAwB,CAAE;IACnFC,MAAM,EAAER,KAAK,CAACS,UAAW;IACzBC,YAAY,eAAEZ,IAAA,CAACF,YAAY;MAACe,IAAI,EAAEX,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAEd,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7Cf;EAAI,CACX,CAAC;AAEV"}
1
+ {"version":3,"names":["Autocomplete","ErrorMessage","jsx","_jsx","FormAutocomplete","field","rest","selectedKey","state","value","onSelectionChange","handleChange","undefined","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormAutocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>\n extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {\n return (\n <Autocomplete<RenderItem>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,YAAY,QAAQ,eAAe;AAI5C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAK7C,OAAO,SAASC,gBAAgBA,CAA2F;EACvHC,KAAK;EACL,GAAGC;AACwC,CAAC,EAAa;EACzD,oBACIH,IAAA,CAACH,YAAY;IACTO,WAAW,EAAEF,KAAK,CAACG,KAAK,CAACC,KAAK,IAAI,IAAK;IACvCC,iBAAiB,EAAED,KAAK,IAAIJ,KAAK,CAACM,YAAY,CAAEF,KAAK,IAAIG,SAAwB,CAAE;IACnFC,MAAM,EAAER,KAAK,CAACS,UAAW;IACzBC,YAAY,eAAEZ,IAAA,CAACF,YAAY;MAACe,IAAI,EAAEX,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAEd,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7Cf;EAAI,CACX,CAAC;AAEV"}
@@ -2,7 +2,7 @@ import { Select } from "@heroui/react";
2
2
  import { Key } from "@react-types/shared";
3
3
  import { FieldComponentProps } from "soda-tanstack-form";
4
4
  import { StrictOmit } from "soda-type";
5
- export interface FormSelectProps<Value extends Key | undefined = Key | undefined, Multiple extends boolean = false, T extends object = object, FieldValue = Multiple extends true ? Value[] : Value> extends StrictOmit<FieldComponentProps<typeof Select<T>, FieldValue>, "multiple"> {
5
+ export interface FormSelectProps<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
6
6
  multiple?: Multiple;
7
7
  }
8
- export declare function FormSelect<Value extends Key | undefined = Key | undefined, Multiple extends boolean = false, T extends object = object, FieldValue = Multiple extends true ? Value[] : Value>({ field, multiple, ...rest }: FormSelectProps<Value, Multiple, T, FieldValue>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function FormSelect<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>): import("react/jsx-runtime").JSX.Element;
@@ -10,7 +10,7 @@ export function FormSelect({
10
10
  ...rest
11
11
  }) {
12
12
  return /*#__PURE__*/_jsx(Select, {
13
- selectedKeys: Array.isArray(field.state.value) ? field.state.value.filter(isNonNullable) : isNonNullable(field.state.value) ? [field.state.value] : [],
13
+ selectedKeys: isNonNullable(field.state.value) ? multiple ? field.state.value : [field.state.value] : [],
14
14
  onSelectionChange: keys => {
15
15
  const value = Array.from(keys);
16
16
  field.handleChange(multiple ? value : value.at(0));
@@ -1 +1 @@
1
- {"version":3,"names":["Select","isNonNullable","ErrorMessage","jsx","_jsx","FormSelect","field","multiple","rest","selectedKeys","Array","isArray","state","value","filter","onSelectionChange","keys","from","handleChange","at","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormSelect.tsx"],"sourcesContent":["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Value extends Key | undefined = Key | undefined,\n Multiple extends boolean = false,\n T extends object = object,\n FieldValue = Multiple extends true ? Value[] : Value,\n> extends StrictOmit<FieldComponentProps<typeof Select<T>, FieldValue>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Value extends Key | undefined = Key | undefined,\n Multiple extends boolean = false,\n T extends object = object,\n FieldValue = Multiple extends true ? Value[] : Value,\n>({ field, multiple, ...rest }: FormSelectProps<Value, Multiple, T, FieldValue>) {\n return (\n <Select<T>\n selectedKeys={\n Array.isArray(field.state.value) ? field.state.value.filter(isNonNullable) : isNonNullable(field.state.value) ? [field.state.value] : []\n }\n onSelectionChange={keys => {\n const value = Array.from(keys) as string[]\n field.handleChange((multiple ? value : value.at(0)) as FieldValue)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,MAAM,QAAQ,eAAe;AAEtC,SAASC,aAAa,QAAQ,eAAe;AAI7C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAW7C,OAAO,SAASC,UAAUA,CAKxB;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAsD,CAAC,EAAE;EAC7E,oBACIJ,IAAA,CAACJ,MAAM;IACHS,YAAY,EACRC,KAAK,CAACC,OAAO,CAACL,KAAK,CAACM,KAAK,CAACC,KAAK,CAAC,GAAGP,KAAK,CAACM,KAAK,CAACC,KAAK,CAACC,MAAM,CAACb,aAAa,CAAC,GAAGA,aAAa,CAACK,KAAK,CAACM,KAAK,CAACC,KAAK,CAAC,GAAG,CAACP,KAAK,CAACM,KAAK,CAACC,KAAK,CAAC,GAAG,EACzI;IACDE,iBAAiB,EAAEC,IAAI,IAAI;MACvB,MAAMH,KAAK,GAAGH,KAAK,CAACO,IAAI,CAACD,IAAI,CAAa;MAC1CV,KAAK,CAACY,YAAY,CAAEX,QAAQ,GAAGM,KAAK,GAAGA,KAAK,CAACM,EAAE,CAAC,CAAC,CAAgB,CAAC;IACtE,CAAE;IACFC,MAAM,EAAEd,KAAK,CAACe,UAAW;IACzBC,YAAY,eAAElB,IAAA,CAACF,YAAY;MAACqB,IAAI,EAAEjB,KAAK,CAACM,KAAK,CAACY,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAEpB,KAAK,CAACM,KAAK,CAACY,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7CpB;EAAI,CACX,CAAC;AAEV"}
1
+ {"version":3,"names":["Select","isNonNullable","ErrorMessage","jsx","_jsx","FormSelect","field","multiple","rest","selectedKeys","state","value","onSelectionChange","keys","Array","from","handleChange","at","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormSelect.tsx"],"sourcesContent":["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {\n return (\n <Select<RenderItem>\n selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}\n onSelectionChange={keys => {\n const value = Array.from(keys)\n field.handleChange((multiple ? value : value.at(0)) as Value)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,MAAM,QAAQ,eAAe;AAEtC,SAASC,aAAa,QAAQ,eAAe;AAI7C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAU7C,OAAO,SAASC,UAAUA,CAIxB;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAmD,CAAC,EAAE;EAC1E,oBACIJ,IAAA,CAACJ,MAAM;IACHS,YAAY,EAAER,aAAa,CAACK,KAAK,CAACI,KAAK,CAACC,KAAK,CAAC,GAAIJ,QAAQ,GAAID,KAAK,CAACI,KAAK,CAACC,KAAK,GAAa,CAACL,KAAK,CAACI,KAAK,CAACC,KAAK,CAAQ,GAAI,EAAG;IAC7HC,iBAAiB,EAAEC,IAAI,IAAI;MACvB,MAAMF,KAAK,GAAGG,KAAK,CAACC,IAAI,CAACF,IAAI,CAAC;MAC9BP,KAAK,CAACU,YAAY,CAAET,QAAQ,GAAGI,KAAK,GAAGA,KAAK,CAACM,EAAE,CAAC,CAAC,CAAW,CAAC;IACjE,CAAE;IACFC,MAAM,EAAEZ,KAAK,CAACa,UAAW;IACzBC,YAAY,eAAEhB,IAAA,CAACF,YAAY;MAACmB,IAAI,EAAEf,KAAK,CAACI,KAAK,CAACY,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAElB,KAAK,CAACI,KAAK,CAACY,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7ClB;EAAI,CACX,CAAC;AAEV"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "soda-heroui",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -31,7 +31,7 @@
31
31
  "dependencies": {
32
32
  "@internationalized/date": "^3.7.0",
33
33
  "@tanstack/react-form": "^1.1.2",
34
- "deepsea-tools": "5.20.0",
34
+ "deepsea-tools": "5.22.0",
35
35
  "soda-tanstack-form": "0.0.3",
36
36
  "soda-type": "6.0.2"
37
37
  },
@@ -7,15 +7,15 @@ import { FieldComponentProps } from "soda-tanstack-form"
7
7
 
8
8
  import { ErrorMessage } from "./ErrorMessage"
9
9
 
10
- export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, T extends object = object>
11
- extends FieldComponentProps<typeof Autocomplete<T>, FieldValue> {}
10
+ export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>
11
+ extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}
12
12
 
13
- export function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, T extends object = object>({
13
+ export function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({
14
14
  field,
15
15
  ...rest
16
- }: FormAutocompleteProps<FieldValue, T>): ReactNode {
16
+ }: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {
17
17
  return (
18
- <Autocomplete<T>
18
+ <Autocomplete<RenderItem>
19
19
  selectedKey={field.state.value ?? null}
20
20
  onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}
21
21
  onBlur={field.handleBlur}
@@ -9,28 +9,24 @@ import { StrictOmit } from "soda-type"
9
9
  import { ErrorMessage } from "./ErrorMessage"
10
10
 
11
11
  export interface FormSelectProps<
12
- Value extends Key | undefined = Key | undefined,
13
12
  Multiple extends boolean = false,
14
- T extends object = object,
15
- FieldValue = Multiple extends true ? Value[] : Value,
16
- > extends StrictOmit<FieldComponentProps<typeof Select<T>, FieldValue>, "multiple"> {
13
+ Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,
14
+ RenderItem extends object = object,
15
+ > extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
17
16
  multiple?: Multiple
18
17
  }
19
18
 
20
19
  export function FormSelect<
21
- Value extends Key | undefined = Key | undefined,
22
20
  Multiple extends boolean = false,
23
- T extends object = object,
24
- FieldValue = Multiple extends true ? Value[] : Value,
25
- >({ field, multiple, ...rest }: FormSelectProps<Value, Multiple, T, FieldValue>) {
21
+ Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,
22
+ RenderItem extends object = object,
23
+ >({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {
26
24
  return (
27
- <Select<T>
28
- selectedKeys={
29
- Array.isArray(field.state.value) ? field.state.value.filter(isNonNullable) : isNonNullable(field.state.value) ? [field.state.value] : []
30
- }
25
+ <Select<RenderItem>
26
+ selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}
31
27
  onSelectionChange={keys => {
32
- const value = Array.from(keys) as string[]
33
- field.handleChange((multiple ? value : value.at(0)) as FieldValue)
28
+ const value = Array.from(keys)
29
+ field.handleChange((multiple ? value : value.at(0)) as Value)
34
30
  }}
35
31
  onBlur={field.handleBlur}
36
32
  errorMessage={<ErrorMessage data={field.state.meta.errors} />}