soda-heroui 0.0.4 → 0.1.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.
- package/dist/cjs/components/AutoNavbarItem.d.ts +13 -0
- package/dist/cjs/components/AutoNavbarItem.js +39 -0
- package/dist/cjs/components/AutoNavbarItem.js.map +7 -0
- package/dist/cjs/components/FormAutocomplete.d.ts +2 -2
- package/dist/cjs/components/FormAutocomplete.js.map +2 -2
- package/dist/cjs/components/FormSelect.d.ts +2 -2
- package/dist/cjs/components/FormSelect.js +1 -1
- package/dist/cjs/components/FormSelect.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/esm/components/AutoNavbarItem.d.ts +13 -0
- package/dist/esm/components/AutoNavbarItem.js +20 -0
- package/dist/esm/components/AutoNavbarItem.js.map +1 -0
- package/dist/esm/components/FormAutocomplete.d.ts +2 -2
- package/dist/esm/components/FormAutocomplete.js.map +1 -1
- package/dist/esm/components/FormSelect.d.ts +2 -2
- package/dist/esm/components/FormSelect.js +1 -1
- package/dist/esm/components/FormSelect.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/AutoNavbarItem.tsx +26 -0
- package/src/components/FormAutocomplete.tsx +5 -5
- package/src/components/FormSelect.tsx +10 -14
- package/src/index.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from "react";
|
|
2
|
+
import { NavbarItem } from "@heroui/react";
|
|
3
|
+
import { StrictOmit } from "soda-type";
|
|
4
|
+
export interface AutoNavbarItemProps extends StrictOmit<ComponentProps<typeof NavbarItem>, "isActive"> {
|
|
5
|
+
href: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LocationState {
|
|
8
|
+
href: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CreateAutoNavbarItemParams {
|
|
11
|
+
useLocation: () => LocationState;
|
|
12
|
+
}
|
|
13
|
+
export declare function createAutoNavbarItem({ useLocation }: CreateAutoNavbarItemParams): (props: AutoNavbarItemProps) => ReactNode;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/components/AutoNavbarItem.tsx
|
|
20
|
+
var AutoNavbarItem_exports = {};
|
|
21
|
+
__export(AutoNavbarItem_exports, {
|
|
22
|
+
createAutoNavbarItem: () => createAutoNavbarItem
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(AutoNavbarItem_exports);
|
|
25
|
+
var import_react = require("@heroui/react");
|
|
26
|
+
var import_deepsea_tools = require("deepsea-tools");
|
|
27
|
+
function createAutoNavbarItem({ useLocation }) {
|
|
28
|
+
function AutoNavbarItem(props) {
|
|
29
|
+
const { href, ...rest } = props;
|
|
30
|
+
const location = useLocation();
|
|
31
|
+
return /* @__PURE__ */ React.createElement(import_react.NavbarItem, { ...rest, isActive: (0, import_deepsea_tools.isActiveHref)(href, location.href) });
|
|
32
|
+
}
|
|
33
|
+
return AutoNavbarItem;
|
|
34
|
+
}
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
createAutoNavbarItem
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=AutoNavbarItem.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AutoNavbarItem.tsx"],
|
|
4
|
+
"sourcesContent": ["import { ComponentProps, ReactNode } from \"react\"\r\nimport { NavbarItem } from \"@heroui/react\"\r\nimport { isActiveHref } from \"deepsea-tools\"\r\nimport { StrictOmit } from \"soda-type\"\r\n\r\nexport interface AutoNavbarItemProps extends StrictOmit<ComponentProps<typeof NavbarItem>, \"isActive\"> {\r\n href: string\r\n}\r\n\r\nexport interface LocationState {\r\n href: string\r\n}\r\n\r\nexport interface CreateAutoNavbarItemParams {\r\n useLocation: () => LocationState\r\n}\r\n\r\nexport function createAutoNavbarItem({ useLocation }: CreateAutoNavbarItemParams) {\r\n function AutoNavbarItem(props: AutoNavbarItemProps): ReactNode {\r\n const { href, ...rest } = props\r\n const location = useLocation()\r\n return <NavbarItem {...rest} isActive={isActiveHref(href, location.href)} />\r\n }\r\n\r\n return AutoNavbarItem\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA2B;AAC3B,2BAA6B;AAetB,SAAS,qBAAqB,EAAE,YAAY,GAA+B;AAC9E,WAAS,eAAe,OAAuC;AAC3D,UAAM,EAAE,MAAM,GAAG,KAAK,IAAI;AAC1B,UAAM,WAAW,YAAY;AAC7B,WAAO,oCAAC,2BAAY,GAAG,MAAM,cAAU,mCAAa,MAAM,SAAS,IAAI,GAAG;AAAA,EAC9E;AAEA,SAAO;AACX;",
|
|
6
|
+
"names": []
|
|
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,
|
|
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,
|
|
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,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA6B;AAI7B,0BAA6B;AAKtB,SAAS,
|
|
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<
|
|
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<
|
|
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:
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAuB;AAEvB,2BAA8B;AAI9B,0BAA6B;
|
|
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
|
}
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
16
16
|
// src/index.ts
|
|
17
17
|
var src_exports = {};
|
|
18
18
|
module.exports = __toCommonJS(src_exports);
|
|
19
|
+
__reExport(src_exports, require("./components/AutoNavbarItem"), module.exports);
|
|
19
20
|
__reExport(src_exports, require("./components/ErrorMessage"), module.exports);
|
|
20
21
|
__reExport(src_exports, require("./components/FormAutocomplete"), module.exports);
|
|
21
22
|
__reExport(src_exports, require("./components/FormCalendar"), module.exports);
|
|
@@ -38,6 +39,7 @@ __reExport(src_exports, require("./utils/getTimeValue"), module.exports);
|
|
|
38
39
|
__reExport(src_exports, require("./utils/parseTime"), module.exports);
|
|
39
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
40
41
|
0 && (module.exports = {
|
|
42
|
+
...require("./components/AutoNavbarItem"),
|
|
41
43
|
...require("./components/ErrorMessage"),
|
|
42
44
|
...require("./components/FormAutocomplete"),
|
|
43
45
|
...require("./components/FormCalendar"),
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from \"@/components/ErrorMessage\"\nexport * from \"@/components/FormAutocomplete\"\nexport * from \"@/components/FormCalendar\"\nexport * from \"@/components/FormCheckbox\"\nexport * from \"@/components/FormCheckboxGroup\"\nexport * from \"@/components/FormDateInput\"\nexport * from \"@/components/FormDatePicker\"\nexport * from \"@/components/FormDateRangePicker\"\nexport * from \"@/components/FormInput\"\nexport * from \"@/components/FormInputOtp\"\nexport * from \"@/components/FormNumberInput\"\nexport * from \"@/components/FormPagination\"\nexport * from \"@/components/FormRadioGroup\"\nexport * from \"@/components/FormRangeCalendar\"\nexport * from \"@/components/FormSelect\"\nexport * from \"@/components/FormSwitch\"\nexport * from \"@/components/FormTextarea\"\nexport * from \"@/components/FormTimeInput\"\nexport * from \"@/utils/getTimeValue\"\nexport * from \"@/utils/parseTime\"\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,
|
|
4
|
+
"sourcesContent": ["export * from \"@/components/AutoNavbarItem\"\nexport * from \"@/components/ErrorMessage\"\nexport * from \"@/components/FormAutocomplete\"\nexport * from \"@/components/FormCalendar\"\nexport * from \"@/components/FormCheckbox\"\nexport * from \"@/components/FormCheckboxGroup\"\nexport * from \"@/components/FormDateInput\"\nexport * from \"@/components/FormDatePicker\"\nexport * from \"@/components/FormDateRangePicker\"\nexport * from \"@/components/FormInput\"\nexport * from \"@/components/FormInputOtp\"\nexport * from \"@/components/FormNumberInput\"\nexport * from \"@/components/FormPagination\"\nexport * from \"@/components/FormRadioGroup\"\nexport * from \"@/components/FormRangeCalendar\"\nexport * from \"@/components/FormSelect\"\nexport * from \"@/components/FormSwitch\"\nexport * from \"@/components/FormTextarea\"\nexport * from \"@/components/FormTimeInput\"\nexport * from \"@/utils/getTimeValue\"\nexport * from \"@/utils/parseTime\"\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,wCAAd;AACA,wBAAc,sCADd;AAEA,wBAAc,0CAFd;AAGA,wBAAc,sCAHd;AAIA,wBAAc,sCAJd;AAKA,wBAAc,2CALd;AAMA,wBAAc,uCANd;AAOA,wBAAc,wCAPd;AAQA,wBAAc,6CARd;AASA,wBAAc,mCATd;AAUA,wBAAc,sCAVd;AAWA,wBAAc,yCAXd;AAYA,wBAAc,wCAZd;AAaA,wBAAc,wCAbd;AAcA,wBAAc,2CAdd;AAeA,wBAAc,oCAfd;AAgBA,wBAAc,oCAhBd;AAiBA,wBAAc,sCAjBd;AAkBA,wBAAc,uCAlBd;AAmBA,wBAAc,iCAnBd;AAoBA,wBAAc,8BApBd;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from "react";
|
|
2
|
+
import { NavbarItem } from "@heroui/react";
|
|
3
|
+
import { StrictOmit } from "soda-type";
|
|
4
|
+
export interface AutoNavbarItemProps extends StrictOmit<ComponentProps<typeof NavbarItem>, "isActive"> {
|
|
5
|
+
href: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LocationState {
|
|
8
|
+
href: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CreateAutoNavbarItemParams {
|
|
11
|
+
useLocation: () => LocationState;
|
|
12
|
+
}
|
|
13
|
+
export declare function createAutoNavbarItem({ useLocation }: CreateAutoNavbarItemParams): (props: AutoNavbarItemProps) => ReactNode;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NavbarItem } from "@heroui/react";
|
|
2
|
+
import { isActiveHref } from "deepsea-tools";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
export function createAutoNavbarItem({
|
|
5
|
+
useLocation
|
|
6
|
+
}) {
|
|
7
|
+
function AutoNavbarItem(props) {
|
|
8
|
+
const {
|
|
9
|
+
href,
|
|
10
|
+
...rest
|
|
11
|
+
} = props;
|
|
12
|
+
const location = useLocation();
|
|
13
|
+
return /*#__PURE__*/_jsx(NavbarItem, {
|
|
14
|
+
...rest,
|
|
15
|
+
isActive: isActiveHref(href, location.href)
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return AutoNavbarItem;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AutoNavbarItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NavbarItem","isActiveHref","jsx","_jsx","createAutoNavbarItem","useLocation","AutoNavbarItem","props","href","rest","location","isActive"],"sources":["../../../src/components/AutoNavbarItem.tsx"],"sourcesContent":["import { ComponentProps, ReactNode } from \"react\"\r\nimport { NavbarItem } from \"@heroui/react\"\r\nimport { isActiveHref } from \"deepsea-tools\"\r\nimport { StrictOmit } from \"soda-type\"\r\n\r\nexport interface AutoNavbarItemProps extends StrictOmit<ComponentProps<typeof NavbarItem>, \"isActive\"> {\r\n href: string\r\n}\r\n\r\nexport interface LocationState {\r\n href: string\r\n}\r\n\r\nexport interface CreateAutoNavbarItemParams {\r\n useLocation: () => LocationState\r\n}\r\n\r\nexport function createAutoNavbarItem({ useLocation }: CreateAutoNavbarItemParams) {\r\n function AutoNavbarItem(props: AutoNavbarItemProps): ReactNode {\r\n const { href, ...rest } = props\r\n const location = useLocation()\r\n return <NavbarItem {...rest} isActive={isActiveHref(href, location.href)} />\r\n }\r\n\r\n return AutoNavbarItem\r\n}\r\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,YAAY,QAAQ,eAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAe5C,OAAO,SAASC,oBAAoBA,CAAC;EAAEC;AAAwC,CAAC,EAAE;EAC9E,SAASC,cAAcA,CAACC,KAA0B,EAAa;IAC3D,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAC/B,MAAMG,QAAQ,GAAGL,WAAW,CAAC,CAAC;IAC9B,oBAAOF,IAAA,CAACH,UAAU;MAAA,GAAKS,IAAI;MAAEE,QAAQ,EAAEV,YAAY,CAACO,IAAI,EAAEE,QAAQ,CAACF,IAAI;IAAE,CAAE,CAAC;EAChF;EAEA,OAAOF,cAAc;AACzB"}
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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<
|
|
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<
|
|
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:
|
|
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","
|
|
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/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"@/components/ErrorMessage\"\nexport * from \"@/components/FormAutocomplete\"\nexport * from \"@/components/FormCalendar\"\nexport * from \"@/components/FormCheckbox\"\nexport * from \"@/components/FormCheckboxGroup\"\nexport * from \"@/components/FormDateInput\"\nexport * from \"@/components/FormDatePicker\"\nexport * from \"@/components/FormDateRangePicker\"\nexport * from \"@/components/FormInput\"\nexport * from \"@/components/FormInputOtp\"\nexport * from \"@/components/FormNumberInput\"\nexport * from \"@/components/FormPagination\"\nexport * from \"@/components/FormRadioGroup\"\nexport * from \"@/components/FormRangeCalendar\"\nexport * from \"@/components/FormSelect\"\nexport * from \"@/components/FormSwitch\"\nexport * from \"@/components/FormTextarea\"\nexport * from \"@/components/FormTimeInput\"\nexport * from \"@/utils/getTimeValue\"\nexport * from \"@/utils/parseTime\"\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"@/components/AutoNavbarItem\"\nexport * from \"@/components/ErrorMessage\"\nexport * from \"@/components/FormAutocomplete\"\nexport * from \"@/components/FormCalendar\"\nexport * from \"@/components/FormCheckbox\"\nexport * from \"@/components/FormCheckboxGroup\"\nexport * from \"@/components/FormDateInput\"\nexport * from \"@/components/FormDatePicker\"\nexport * from \"@/components/FormDateRangePicker\"\nexport * from \"@/components/FormInput\"\nexport * from \"@/components/FormInputOtp\"\nexport * from \"@/components/FormNumberInput\"\nexport * from \"@/components/FormPagination\"\nexport * from \"@/components/FormRadioGroup\"\nexport * from \"@/components/FormRangeCalendar\"\nexport * from \"@/components/FormSelect\"\nexport * from \"@/components/FormSwitch\"\nexport * from \"@/components/FormTextarea\"\nexport * from \"@/components/FormTimeInput\"\nexport * from \"@/utils/getTimeValue\"\nexport * from \"@/utils/parseTime\"\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "soda-heroui",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
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.
|
|
34
|
+
"deepsea-tools": "5.23.0",
|
|
35
35
|
"soda-type": "6.0.2",
|
|
36
36
|
"soda-tanstack-form": "0.0.3"
|
|
37
37
|
},
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from "react"
|
|
2
|
+
import { NavbarItem } from "@heroui/react"
|
|
3
|
+
import { isActiveHref } from "deepsea-tools"
|
|
4
|
+
import { StrictOmit } from "soda-type"
|
|
5
|
+
|
|
6
|
+
export interface AutoNavbarItemProps extends StrictOmit<ComponentProps<typeof NavbarItem>, "isActive"> {
|
|
7
|
+
href: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface LocationState {
|
|
11
|
+
href: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface CreateAutoNavbarItemParams {
|
|
15
|
+
useLocation: () => LocationState
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function createAutoNavbarItem({ useLocation }: CreateAutoNavbarItemParams) {
|
|
19
|
+
function AutoNavbarItem(props: AutoNavbarItemProps): ReactNode {
|
|
20
|
+
const { href, ...rest } = props
|
|
21
|
+
const location = useLocation()
|
|
22
|
+
return <NavbarItem {...rest} isActive={isActiveHref(href, location.href)} />
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return AutoNavbarItem
|
|
26
|
+
}
|
|
@@ -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,
|
|
11
|
-
extends FieldComponentProps<typeof Autocomplete<
|
|
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,
|
|
13
|
+
export function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({
|
|
14
14
|
field,
|
|
15
15
|
...rest
|
|
16
|
-
}: FormAutocompleteProps<FieldValue,
|
|
16
|
+
}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {
|
|
17
17
|
return (
|
|
18
|
-
<Autocomplete<
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
> extends StrictOmit<FieldComponentProps<typeof Select<
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
>({ field, multiple, ...rest }: FormSelectProps<
|
|
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<
|
|
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)
|
|
33
|
-
field.handleChange((multiple ? value : value.at(0)) as
|
|
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} />}
|
package/src/index.ts
CHANGED