@jakubmazanec/ui 0.1.0-unstable.0c19abe → 0.1.0-unstable.394c9e8
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/README.md +6 -1
- package/build/components/Button.d.ts +21 -8
- package/build/components/Button.js +27 -21
- package/build/components/Button.js.map +3 -3
- package/build/components/Card.d.ts +8 -3
- package/build/components/Card.js +4 -2
- package/build/components/Card.js.map +2 -2
- package/build/components/Checkbox.d.ts +20 -4
- package/build/components/Checkbox.js +56 -48
- package/build/components/Checkbox.js.map +3 -3
- package/build/components/CheckboxField.d.ts +10 -4
- package/build/components/CheckboxField.js +5 -2
- package/build/components/CheckboxField.js.map +2 -2
- package/build/components/Combobox.d.ts +37 -14
- package/build/components/Combobox.js +125 -109
- package/build/components/Combobox.js.map +3 -3
- package/build/components/ComboboxOption.d.ts +28 -0
- package/build/components/ComboboxOption.js +33 -0
- package/build/components/ComboboxOption.js.map +7 -0
- package/build/components/Dialog.d.ts +1 -1
- package/build/components/Dialog.js +1 -1
- package/build/components/Dialog.js.map +2 -2
- package/build/components/Error.js +2 -2
- package/build/components/Error.js.map +2 -2
- package/build/components/Field.d.ts +10 -4
- package/build/components/Field.js +5 -2
- package/build/components/Field.js.map +2 -2
- package/build/components/Fieldset.d.ts +16 -0
- package/build/components/Fieldset.js +14 -0
- package/build/components/Fieldset.js.map +7 -0
- package/build/components/Form.d.ts +4 -5
- package/build/components/Form.js +5 -4
- package/build/components/Form.js.map +2 -2
- package/build/components/Icon.d.ts +28 -0
- package/build/components/Icon.js +46 -0
- package/build/components/Icon.js.map +7 -0
- package/build/components/Input.d.ts +11 -17
- package/build/components/Input.js +38 -83
- package/build/components/Input.js.map +2 -2
- package/build/components/Legend.d.ts +10 -0
- package/build/components/Legend.js +10 -0
- package/build/components/Legend.js.map +7 -0
- package/build/components/Listbox.d.ts +39 -13
- package/build/components/Listbox.js +170 -65
- package/build/components/Listbox.js.map +3 -3
- package/build/components/ListboxOption.d.ts +28 -0
- package/build/components/ListboxOption.js +33 -0
- package/build/components/ListboxOption.js.map +7 -0
- package/build/components/PopoverButton.d.ts +2 -2
- package/build/components/PopoverButton.js.map +2 -2
- package/build/components/Radio.d.ts +15 -5
- package/build/components/Radio.js +42 -28
- package/build/components/Radio.js.map +2 -2
- package/build/components/RadioField.d.ts +1 -1
- package/build/components/RadioField.js +1 -5
- package/build/components/RadioField.js.map +2 -2
- package/build/components/RadioGroup.d.ts +33 -0
- package/build/components/RadioGroup.js +74 -0
- package/build/components/RadioGroup.js.map +7 -0
- package/build/components/Spinner.d.ts +19 -6
- package/build/components/Spinner.js +39 -43
- package/build/components/Spinner.js.map +2 -2
- package/build/components/Table.d.ts +3 -8
- package/build/components/Table.js +2 -13
- package/build/components/Table.js.map +2 -2
- package/build/components/TableCell.js +1 -1
- package/build/components/TableCell.js.map +2 -2
- package/build/components/TableHeader.js +3 -2
- package/build/components/TableHeader.js.map +2 -2
- package/build/components/TableHeaderCell.js +1 -1
- package/build/components/TableHeaderCell.js.map +2 -2
- package/build/components/TableRow.js +1 -1
- package/build/components/TableRow.js.map +2 -2
- package/build/components/Textarea.d.ts +13 -19
- package/build/components/Textarea.js +25 -75
- package/build/components/Textarea.js.map +2 -2
- package/build/components/internals/fieldContext.d.ts +3 -0
- package/build/components/internals/fieldContext.js +4 -0
- package/build/components/internals/fieldContext.js.map +7 -0
- package/build/components/internals/fieldNameContext.d.ts +2 -1
- package/build/components/internals/fieldNameContext.js.map +2 -2
- package/build/components/internals/formIdContext.d.ts +2 -0
- package/build/components/internals/formIdContext.js +4 -0
- package/build/components/internals/formIdContext.js.map +7 -0
- package/build/components/internals/forwardRef.d.ts +4 -0
- package/build/components/internals/forwardRef.js +6 -0
- package/build/components/internals/forwardRef.js.map +7 -0
- package/build/components/internals/useFormId.d.ts +1 -0
- package/build/components/internals/useFormId.js +7 -0
- package/build/components/internals/useFormId.js.map +7 -0
- package/build/components/internals.d.ts +4 -4
- package/build/components/internals.js +4 -4
- package/build/components/internals.js.map +1 -1
- package/build/components/useField.d.ts +1 -0
- package/build/components/useField.js +7 -0
- package/build/components/useField.js.map +7 -0
- package/build/components/useFieldName.d.ts +1 -0
- package/build/components/{internals/useFieldName.js → useFieldName.js} +1 -1
- package/build/components/useFieldName.js.map +7 -0
- package/build/components/useForm.d.ts +10 -0
- package/build/components/useForm.js +18 -0
- package/build/components/useForm.js.map +7 -0
- package/build/components.d.ts +9 -2
- package/build/components.js +9 -2
- package/build/components.js.map +2 -2
- package/build/development/createTailwindConfig.js +55 -5
- package/build/development/createTailwindConfig.js.map +2 -2
- package/build/development.d.ts +0 -1
- package/build/development.js +0 -1
- package/build/development.js.map +2 -2
- package/build/main.d.ts +0 -2
- package/build/main.js +0 -2
- package/build/main.js.map +2 -2
- package/build/{fonts.css → styles.css} +6 -1
- package/build/{fonts.css.map → styles.css.map} +3 -3
- package/build/theme/Theme.d.ts +9 -3
- package/build/theme/defaultTheme.js +133 -95
- package/build/theme/defaultTheme.js.map +2 -2
- package/build/theme/internals/themeContext.d.ts +90 -39
- package/build/theme/internals/useTheme.d.ts +90 -39
- package/package.json +23 -21
- package/source/components/Button.tsx +81 -0
- package/source/components/Card.tsx +13 -6
- package/source/components/Checkbox.tsx +86 -59
- package/source/components/CheckboxField.tsx +26 -6
- package/source/components/Combobox.tsx +237 -146
- package/source/components/ComboboxOption.tsx +62 -0
- package/source/components/Dialog.tsx +2 -2
- package/source/components/Error.tsx +2 -2
- package/source/components/Field.tsx +26 -6
- package/source/components/Fieldset.tsx +26 -0
- package/source/components/Form.tsx +13 -12
- package/source/components/Icon.tsx +80 -0
- package/source/components/Input.tsx +48 -108
- package/source/components/Legend.tsx +18 -0
- package/source/components/Listbox.tsx +318 -96
- package/source/components/ListboxOption.tsx +62 -0
- package/source/components/PopoverButton.tsx +4 -2
- package/source/components/Radio.tsx +57 -33
- package/source/components/RadioField.tsx +1 -17
- package/source/components/RadioGroup.tsx +131 -0
- package/source/components/Spinner.tsx +17 -16
- package/source/components/Table.tsx +3 -16
- package/source/components/TableCell.tsx +1 -1
- package/source/components/TableHeader.tsx +2 -4
- package/source/components/TableHeaderCell.tsx +1 -1
- package/source/components/TableRow.tsx +1 -1
- package/source/components/Textarea.tsx +36 -102
- package/source/components/internals/fieldContext.ts +4 -0
- package/source/components/internals/fieldNameContext.ts +3 -1
- package/source/components/internals/formIdContext.ts +3 -0
- package/source/components/internals/forwardRef.ts +7 -0
- package/source/components/internals/useFormId.ts +7 -0
- package/source/components/internals.ts +4 -4
- package/source/components/useField.ts +7 -0
- package/source/components/{internals/useFieldName.ts → useFieldName.ts} +1 -1
- package/source/components/useForm.ts +23 -0
- package/source/components.ts +9 -2
- package/source/development/createTailwindConfig.ts +56 -5
- package/source/development.ts +0 -1
- package/source/main.ts +0 -5
- package/source/{fonts.css → styles.css} +6 -0
- package/source/theme/Theme.ts +16 -4
- package/source/theme/defaultTheme.ts +143 -97
- package/build/components/ConfirmDialog.d.ts +0 -23
- package/build/components/ConfirmDialog.js +0 -40
- package/build/components/ConfirmDialog.js.map +0 -7
- package/build/components/RadioGroupField.d.ts +0 -20
- package/build/components/RadioGroupField.js +0 -82
- package/build/components/RadioGroupField.js.map +0 -7
- package/build/components/internals/formContext.d.ts +0 -3
- package/build/components/internals/formContext.js +0 -4
- package/build/components/internals/formContext.js.map +0 -7
- package/build/components/internals/useField.d.ts +0 -6
- package/build/components/internals/useField.js +0 -18
- package/build/components/internals/useField.js.map +0 -7
- package/build/components/internals/useFieldName.d.ts +0 -1
- package/build/components/internals/useFieldName.js.map +0 -7
- package/build/components/internals/useForm.d.ts +0 -1
- package/build/components/internals/useForm.js +0 -7
- package/build/components/internals/useForm.js.map +0 -7
- package/build/development/defaultTailwindConfig.d.ts +0 -72
- package/build/development/defaultTailwindConfig.js +0 -45
- package/build/development/defaultTailwindConfig.js.map +0 -7
- package/build/inter-variable-italic.js +0 -2
- package/build/inter-variable-italic.js.map +0 -7
- package/build/inter-variable.js +0 -2
- package/build/inter-variable.js.map +0 -7
- package/source/components/Button.ts +0 -74
- package/source/components/ConfirmDialog.tsx +0 -67
- package/source/components/RadioGroupField.tsx +0 -101
- package/source/components/internals/formContext.ts +0 -4
- package/source/components/internals/useField.ts +0 -19
- package/source/components/internals/useForm.ts +0 -7
- package/source/development/defaultTailwindConfig.ts +0 -45
- /package/build/{inter-variable-italic-54HMV74W.woff2 → inter-variable-italic.woff2} +0 -0
- /package/build/{inter-variable-75YQYCJN.woff2 → inter-variable.woff2} +0 -0
package/README.md
CHANGED
|
@@ -24,12 +24,17 @@ It cannot be required from a CommonJS module.
|
|
|
24
24
|
|
|
25
25
|
## Usage
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
⚠️ This is an incomplete package! Expect a lot of breaking changes before the version 1.0.0 release.
|
|
28
|
+
|
|
29
|
+
Opinionated, pre-styled, but customizable component library based on React, Headless UI, Tailwind
|
|
30
|
+
CSS and Conform, made for very fast UI creation.
|
|
28
31
|
|
|
29
32
|
## Documentation
|
|
30
33
|
|
|
31
34
|
See [API reference](./docs) for auto-generated documentation.
|
|
32
35
|
|
|
36
|
+
See [Storybook](https://www.chromatic.com/library?appId=666f2dc8033dde8c47f6a278) for preview.
|
|
37
|
+
|
|
33
38
|
## Contributing
|
|
34
39
|
|
|
35
40
|
If you want to contribute, see [CONTRIBUTING](./CONTRIBUTING.md) for details.
|
|
@@ -1,24 +1,37 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ButtonProps as HeadlessButtonProps } from '@headlessui/react';
|
|
2
|
+
import { type ComponentPropsWithoutRef, type ElementType, type Ref } from 'react';
|
|
2
3
|
import { type ComponentProps } from '../theme/internals.js';
|
|
3
4
|
export declare const useButtonTheme: ((themeProps: {
|
|
4
|
-
readonly
|
|
5
|
+
readonly variant: "text" | "solid" | "outline";
|
|
5
6
|
readonly size: "small" | "medium" | "large";
|
|
6
7
|
readonly disabled: boolean;
|
|
7
8
|
}) => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
|
|
8
9
|
componentThemeName: "Button";
|
|
9
10
|
themeDefinition: {
|
|
10
11
|
readonly variants: {
|
|
11
|
-
readonly
|
|
12
|
+
readonly variant: ["solid", "outline", "text"];
|
|
12
13
|
readonly size: ["small", "medium", "large"];
|
|
13
14
|
readonly disabled: [true, false];
|
|
14
15
|
};
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
18
|
export type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> & ComponentPropsWithoutRef<T> & {
|
|
18
|
-
className?: string | undefined;
|
|
19
|
-
submit?: boolean | undefined;
|
|
20
19
|
as?: T | undefined;
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
submit?: boolean | undefined;
|
|
21
|
+
autoFocus?: boolean | undefined;
|
|
22
|
+
className?: string | undefined;
|
|
23
|
+
children?: HeadlessButtonProps['children'] | undefined;
|
|
23
24
|
};
|
|
24
|
-
export declare const Button:
|
|
25
|
+
export declare const Button: <T extends ElementType = "button">(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
|
|
26
|
+
readonly variant: "text" | "solid" | "outline";
|
|
27
|
+
readonly size: "small" | "medium" | "large";
|
|
28
|
+
readonly disabled: boolean;
|
|
29
|
+
}>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
|
|
30
|
+
as?: T | undefined;
|
|
31
|
+
submit?: boolean | undefined;
|
|
32
|
+
autoFocus?: boolean | undefined;
|
|
33
|
+
className?: string | undefined;
|
|
34
|
+
children?: HeadlessButtonProps['children'] | undefined;
|
|
35
|
+
} & {
|
|
36
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
37
|
+
}) => import("react").ReactNode;
|
|
@@ -1,51 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { Button as HeadlessButton } from "@headlessui/react";
|
|
3
4
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Children,
|
|
6
|
+
cloneElement,
|
|
7
|
+
isValidElement
|
|
7
8
|
} from "react";
|
|
8
9
|
import { createComponentTheme } from "../theme/internals.js";
|
|
9
|
-
import {
|
|
10
|
+
import { Icon } from "./Icon.js";
|
|
11
|
+
import { forwardRef } from "./internals.js";
|
|
10
12
|
export const useButtonTheme = createComponentTheme("Button", {
|
|
11
13
|
variants: {
|
|
12
|
-
|
|
14
|
+
variant: ["solid", "outline", "text"],
|
|
13
15
|
size: ["small", "medium", "large"],
|
|
14
16
|
disabled: [true, false]
|
|
15
17
|
}
|
|
16
18
|
});
|
|
19
|
+
const BUTTON_ELEMENT = "button";
|
|
17
20
|
export const Button = forwardRef(
|
|
18
21
|
({
|
|
19
|
-
|
|
20
|
-
className,
|
|
21
|
-
type = "solid",
|
|
22
|
+
variant = "solid",
|
|
22
23
|
size = "medium",
|
|
23
24
|
disabled = false,
|
|
25
|
+
as = BUTTON_ELEMENT,
|
|
24
26
|
submit = false,
|
|
27
|
+
className,
|
|
25
28
|
children,
|
|
26
|
-
onClick,
|
|
27
29
|
...rest
|
|
28
30
|
}, ref) => {
|
|
29
|
-
let theme = useButtonTheme({
|
|
30
|
-
let form = useForm();
|
|
31
|
-
let handleClick = useCallback(() => {
|
|
32
|
-
onClick?.();
|
|
33
|
-
}, [onClick]);
|
|
31
|
+
let theme = useButtonTheme({ variant, size, disabled });
|
|
34
32
|
let props = {
|
|
33
|
+
as,
|
|
34
|
+
ref,
|
|
35
35
|
className: theme(null, className),
|
|
36
|
-
onClick: handleClick,
|
|
37
36
|
disabled,
|
|
38
|
-
...rest
|
|
39
|
-
ref
|
|
37
|
+
...rest
|
|
40
38
|
};
|
|
41
|
-
|
|
42
|
-
if (element === "button") {
|
|
39
|
+
if (as === BUTTON_ELEMENT) {
|
|
43
40
|
props.type = "button";
|
|
44
41
|
}
|
|
45
|
-
if (
|
|
42
|
+
if (submit) {
|
|
46
43
|
props.type = "submit";
|
|
47
44
|
}
|
|
48
|
-
|
|
45
|
+
if (typeof children === "function") {
|
|
46
|
+
return /* @__PURE__ */ jsx(HeadlessButton, { ...props, children });
|
|
47
|
+
}
|
|
48
|
+
let enhancedChildren = Children.map(children, (child) => {
|
|
49
|
+
if (isValidElement(child) && child.type === Icon) {
|
|
50
|
+
return cloneElement(child, { "data-icon": "" });
|
|
51
|
+
}
|
|
52
|
+
return child;
|
|
53
|
+
});
|
|
54
|
+
return /* @__PURE__ */ jsx(HeadlessButton, { ...props, children: enhancedChildren });
|
|
49
55
|
}
|
|
50
56
|
);
|
|
51
57
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../source/components/Button.
|
|
4
|
-
"sourcesContent": ["import {Button as HeadlessButton} from '@headlessui/react';\nimport {\n
|
|
5
|
-
"mappings": ";
|
|
3
|
+
"sources": ["../../source/components/Button.tsx"],
|
|
4
|
+
"sourcesContent": ["import {Button as HeadlessButton, type ButtonProps as HeadlessButtonProps} from '@headlessui/react';\nimport {\n Children,\n cloneElement,\n type ComponentPropsWithoutRef,\n type ElementType,\n isValidElement,\n type Ref,\n} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {Icon} from './Icon.js';\nimport {forwardRef} from './internals.js';\n\nexport const useButtonTheme = createComponentTheme('Button', {\n variants: {\n variant: ['solid', 'outline', 'text'],\n size: ['small', 'medium', 'large'],\n disabled: [true, false],\n },\n});\n\nconst BUTTON_ELEMENT = 'button';\n\nexport type ButtonProps<T extends ElementType> = ComponentProps<typeof useButtonTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n submit?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string | undefined;\n children?: HeadlessButtonProps['children'] | undefined;\n };\n\nexport const Button = forwardRef(\n <T extends ElementType = typeof BUTTON_ELEMENT>(\n {\n variant = 'solid',\n size = 'medium',\n disabled = false,\n as = BUTTON_ELEMENT as T,\n submit = false,\n className,\n children,\n ...rest\n }: ButtonProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useButtonTheme({variant, size, disabled});\n\n let props: Record<string, unknown> = {\n as,\n ref,\n className: theme(null, className),\n disabled,\n ...rest,\n };\n\n if (as === BUTTON_ELEMENT) {\n props.type = 'button';\n }\n\n if (submit) {\n props.type = 'submit';\n }\n\n if (typeof children === 'function') {\n return <HeadlessButton {...props}>{children}</HeadlessButton>;\n }\n\n let enhancedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && child.type === Icon) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n return cloneElement<any>(child, {'data-icon': ''});\n }\n\n return child;\n });\n\n return <HeadlessButton {...props}>{enhancedChildren}</HeadlessButton>;\n },\n);\n"],
|
|
5
|
+
"mappings": ";AAkEa;AAlEb,SAAQ,UAAU,sBAA8D;AAChF;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,OAEK;AAEP,SAA6B,4BAA2B;AACxD,SAAQ,YAAW;AACnB,SAAQ,kBAAiB;AAElB,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU;AAAA,IACR,SAAS,CAAC,SAAS,WAAW,MAAM;AAAA,IACpC,MAAM,CAAC,SAAS,UAAU,OAAO;AAAA,IACjC,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AACF,CAAC;AAED,MAAM,iBAAiB;AAWhB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW;AAAA,IACX,KAAK;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe,EAAC,SAAS,MAAM,SAAQ,CAAC;AAEpD,QAAI,QAAiC;AAAA,MACnC;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC;AAAA,MACA,GAAG;AAAA,IACL;AAEA,QAAI,OAAO,gBAAgB;AACzB,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,QAAQ;AACV,YAAM,OAAO;AAAA,IACf;AAEA,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,oBAAC,kBAAgB,GAAG,OAAQ,UAAS;AAAA,IAC9C;AAEA,QAAI,mBAAmB,SAAS,IAAI,UAAU,CAAC,UAAU;AACvD,UAAI,eAAe,KAAK,KAAK,MAAM,SAAS,MAAM;AAEhD,eAAO,aAAkB,OAAO,EAAC,aAAa,GAAE,CAAC;AAAA,MACnD;AAEA,aAAO;AAAA,IACT,CAAC;AAED,WAAO,oBAAC,kBAAgB,GAAG,OAAQ,4BAAiB;AAAA,EACtD;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { type PropsWithChildren } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { type ComponentProps } from '../theme/internals.js';
|
|
3
|
+
export declare const useCardTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
|
|
4
|
+
componentThemeName: "Card";
|
|
5
|
+
themeDefinition: undefined;
|
|
4
6
|
};
|
|
5
|
-
export
|
|
7
|
+
export type CardProps = PropsWithChildren<ComponentProps<typeof useCardTheme> & {
|
|
8
|
+
className?: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function Card({ className, children }: CardProps): import("react/jsx-runtime").JSX.Element;
|
package/build/components/Card.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { createComponentTheme } from "../theme/internals.js";
|
|
4
|
+
export const useCardTheme = createComponentTheme("Card");
|
|
4
5
|
export function Card({ className, children }) {
|
|
5
|
-
|
|
6
|
+
let theme = useCardTheme();
|
|
7
|
+
return /* @__PURE__ */ jsx("div", { className: theme(null, className), children });
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=Card.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../source/components/Card.tsx"],
|
|
4
|
-
"sourcesContent": ["import {type PropsWithChildren} from 'react';\nimport {
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import {type PropsWithChildren} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\n\nexport const useCardTheme = createComponentTheme('Card');\n\nexport type CardProps = PropsWithChildren<\n ComponentProps<typeof useCardTheme> & {\n className?: string;\n }\n>;\n\nexport function Card({className, children}: CardProps) {\n let theme = useCardTheme();\n\n return <div className={theme(null, className)}>{children}</div>;\n}\n"],
|
|
5
|
+
"mappings": ";AAeS;AAbT,SAA6B,4BAA2B;AAEjD,aAAM,eAAe,qBAAqB,MAAM;AAQhD,gBAAS,KAAK,EAAC,WAAW,SAAQ,GAAc;AACrD,MAAI,QAAQ,aAAa;AAEzB,SAAO,oBAAC,SAAI,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS;AAC3D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ElementType, type Ref } from 'react';
|
|
1
2
|
import { type ComponentProps } from '../theme/internals.js';
|
|
2
3
|
export declare const useCheckboxTheme: ((themeProps: {
|
|
3
4
|
readonly disabled: boolean;
|
|
@@ -15,10 +16,25 @@ export declare const useCheckboxTheme: ((themeProps: {
|
|
|
15
16
|
readonly elements: ["root", "checked", "unchecked", "icon"];
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
|
-
export type CheckboxProps = ComponentProps<typeof useCheckboxTheme> & {
|
|
19
|
+
export type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> & ComponentPropsWithoutRef<T> & {
|
|
20
|
+
as?: T | undefined;
|
|
21
|
+
checked?: boolean | undefined;
|
|
22
|
+
indeterminate?: boolean | undefined;
|
|
23
|
+
autoFocus?: boolean | undefined;
|
|
19
24
|
name?: string;
|
|
20
25
|
className?: string;
|
|
21
|
-
|
|
22
|
-
onChange?: ((value: boolean) => void) | undefined;
|
|
26
|
+
onChange?: ((checked: boolean) => void) | undefined;
|
|
23
27
|
};
|
|
24
|
-
export declare
|
|
28
|
+
export declare const Checkbox: <T extends ElementType = "span">(props: Partial<import("@jakubmazanec/ts-utils").Writable<{
|
|
29
|
+
readonly disabled: boolean;
|
|
30
|
+
}>> & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
|
|
31
|
+
as?: T | undefined;
|
|
32
|
+
checked?: boolean | undefined;
|
|
33
|
+
indeterminate?: boolean | undefined;
|
|
34
|
+
autoFocus?: boolean | undefined;
|
|
35
|
+
name?: string | undefined;
|
|
36
|
+
className?: string | undefined;
|
|
37
|
+
onChange?: ((checked: boolean) => void) | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
40
|
+
}) => import("react").ReactNode;
|
|
@@ -1,63 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Checkbox as HeadlessCheckbox
|
|
5
|
+
} from "@headlessui/react";
|
|
4
6
|
import { CheckIcon } from "@heroicons/react/16/solid";
|
|
5
7
|
import { useCallback } from "react";
|
|
6
|
-
import { Controller } from "react-hook-form";
|
|
7
8
|
import { createComponentTheme } from "../theme/internals.js";
|
|
8
|
-
import {
|
|
9
|
+
import { forwardRef, useFormId } from "./internals.js";
|
|
10
|
+
import { useField } from "./useField.js";
|
|
11
|
+
import { useFieldName } from "./useFieldName.js";
|
|
9
12
|
export const useCheckboxTheme = createComponentTheme("Checkbox", {
|
|
10
13
|
variants: {
|
|
11
14
|
disabled: [true, false]
|
|
12
15
|
},
|
|
13
16
|
elements: ["root", "checked", "unchecked", "icon"]
|
|
14
17
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
return /* @__PURE__ */ jsxs(
|
|
50
|
-
HeadlessCheckbox,
|
|
51
|
-
{
|
|
52
|
-
className: theme.root("group relative", className),
|
|
53
|
-
name: name ?? "",
|
|
54
|
-
checked: Boolean(value),
|
|
55
|
-
onChange: handleChange,
|
|
56
|
-
children: [
|
|
18
|
+
const CHECKBOX_ELEMENT = "span";
|
|
19
|
+
export const Checkbox = forwardRef(
|
|
20
|
+
({
|
|
21
|
+
disabled = false,
|
|
22
|
+
as = CHECKBOX_ELEMENT,
|
|
23
|
+
checked,
|
|
24
|
+
indeterminate,
|
|
25
|
+
autoFocus,
|
|
26
|
+
name,
|
|
27
|
+
className,
|
|
28
|
+
onChange,
|
|
29
|
+
...rest
|
|
30
|
+
}, ref) => {
|
|
31
|
+
let theme = useCheckboxTheme({ disabled });
|
|
32
|
+
let fieldName = useFieldName();
|
|
33
|
+
let field = useField();
|
|
34
|
+
let formId = useFormId();
|
|
35
|
+
let handleChange = useCallback(() => {
|
|
36
|
+
onChange?.(!checked);
|
|
37
|
+
}, [checked, onChange]);
|
|
38
|
+
if (field || fieldName) {
|
|
39
|
+
let props2 = {
|
|
40
|
+
as,
|
|
41
|
+
ref,
|
|
42
|
+
form: formId,
|
|
43
|
+
name: field?.name ?? fieldName,
|
|
44
|
+
indeterminate,
|
|
45
|
+
autoFocus,
|
|
46
|
+
className: theme.root("group relative", className),
|
|
47
|
+
...rest
|
|
48
|
+
};
|
|
49
|
+
return /* @__PURE__ */ jsxs(HeadlessCheckbox, { ...props2, children: [
|
|
57
50
|
/* @__PURE__ */ jsx("div", { className: theme.checked(), children: /* @__PURE__ */ jsx(CheckIcon, { className: theme.icon() }) }),
|
|
58
51
|
/* @__PURE__ */ jsx("div", { className: theme.unchecked() })
|
|
59
|
-
]
|
|
52
|
+
] });
|
|
60
53
|
}
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
let props = {
|
|
55
|
+
as,
|
|
56
|
+
ref,
|
|
57
|
+
checked: Boolean(checked),
|
|
58
|
+
name,
|
|
59
|
+
indeterminate,
|
|
60
|
+
autoFocus,
|
|
61
|
+
className: theme.root("group relative", className),
|
|
62
|
+
onChange: handleChange,
|
|
63
|
+
...rest
|
|
64
|
+
};
|
|
65
|
+
return /* @__PURE__ */ jsxs(HeadlessCheckbox, { ...props, children: [
|
|
66
|
+
/* @__PURE__ */ jsx("div", { className: theme.checked(), children: /* @__PURE__ */ jsx(CheckIcon, { className: theme.icon() }) }),
|
|
67
|
+
/* @__PURE__ */ jsx("div", { className: theme.unchecked() })
|
|
68
|
+
] });
|
|
69
|
+
}
|
|
70
|
+
);
|
|
63
71
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../source/components/Checkbox.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import {\n Checkbox as HeadlessCheckbox,\n type CheckboxProps as HeadlessCheckboxProps,\n} from '@headlessui/react';\nimport {CheckIcon} from '@heroicons/react/16/solid';\nimport {type ComponentPropsWithoutRef, type ElementType, type Ref, useCallback} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {forwardRef, useFormId} from './internals.js';\nimport {useField} from './useField.js';\nimport {useFieldName} from './useFieldName.js';\n\nexport const useCheckboxTheme = createComponentTheme('Checkbox', {\n variants: {\n disabled: [true, false],\n },\n elements: ['root', 'checked', 'unchecked', 'icon'],\n});\n\nconst CHECKBOX_ELEMENT = 'span';\n\nexport type CheckboxProps<T extends ElementType> = ComponentProps<typeof useCheckboxTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n checked?: boolean | undefined;\n indeterminate?: boolean | undefined;\n autoFocus?: boolean | undefined;\n name?: string;\n className?: string;\n onChange?: ((checked: boolean) => void) | undefined;\n };\n\nexport const Checkbox = forwardRef(\n <T extends ElementType = typeof CHECKBOX_ELEMENT>(\n {\n disabled = false,\n as = CHECKBOX_ELEMENT as T,\n checked,\n indeterminate,\n autoFocus,\n name,\n className,\n onChange,\n ...rest\n }: CheckboxProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useCheckboxTheme({disabled});\n let fieldName = useFieldName();\n let field = useField();\n let formId = useFormId();\n\n let handleChange = useCallback(() => {\n onChange?.(!checked);\n }, [checked, onChange]);\n\n if (field || fieldName) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n form: formId,\n name: field?.name ?? fieldName,\n indeterminate,\n autoFocus,\n className: theme.root('group relative', className),\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <div className={theme.checked()}>\n <CheckIcon className={theme.icon()} />\n </div>\n <div className={theme.unchecked()} />\n </HeadlessCheckbox>\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessCheckboxProps<any> = {\n as,\n ref,\n checked: Boolean(checked),\n name,\n indeterminate,\n autoFocus,\n className: theme.root('group relative', className),\n onChange: handleChange,\n ...rest,\n };\n\n return (\n <HeadlessCheckbox {...props}>\n <div className={theme.checked()}>\n <CheckIcon className={theme.icon()} />\n </div>\n <div className={theme.unchecked()} />\n </HeadlessCheckbox>\n );\n },\n);\n"],
|
|
5
|
+
"mappings": ";AAsEQ,SAEI,KAFJ;AAtER;AAAA,EACE,YAAY;AAAA,OAEP;AACP,SAAQ,iBAAgB;AACxB,SAAmE,mBAAkB;AAErF,SAA6B,4BAA2B;AACxD,SAAQ,YAAY,iBAAgB;AACpC,SAAQ,gBAAe;AACvB,SAAQ,oBAAmB;AAEpB,aAAM,mBAAmB,qBAAqB,YAAY;AAAA,EAC/D,UAAU;AAAA,IACR,UAAU,CAAC,MAAM,KAAK;AAAA,EACxB;AAAA,EACA,UAAU,CAAC,QAAQ,WAAW,aAAa,MAAM;AACnD,CAAC;AAED,MAAM,mBAAmB;AAalB,aAAM,WAAW;AAAA,EACtB,CACE;AAAA,IACE,WAAW;AAAA,IACX,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,iBAAiB,EAAC,SAAQ,CAAC;AACvC,QAAI,YAAY,aAAa;AAC7B,QAAI,QAAQ,SAAS;AACrB,QAAI,SAAS,UAAU;AAEvB,QAAI,eAAe,YAAY,MAAM;AACnC,iBAAW,CAAC,OAAO;AAAA,IACrB,GAAG,CAAC,SAAS,QAAQ,CAAC;AAEtB,QAAI,SAAS,WAAW;AAEtB,UAAIA,SAAoC;AAAA,QACtC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,MAAM,OAAO,QAAQ;AAAA,QACrB;AAAA,QACA;AAAA,QACA,WAAW,MAAM,KAAK,kBAAkB,SAAS;AAAA,QACjD,GAAG;AAAA,MACL;AAEA,aACE,qBAAC,oBAAkB,GAAGA,QACpB;AAAA,4BAAC,SAAI,WAAW,MAAM,QAAQ,GAC5B,8BAAC,aAAU,WAAW,MAAM,KAAK,GAAG,GACtC;AAAA,QACA,oBAAC,SAAI,WAAW,MAAM,UAAU,GAAG;AAAA,SACrC;AAAA,IAEJ;AAGA,QAAI,QAAoC;AAAA,MACtC;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,MAAM,KAAK,kBAAkB,SAAS;AAAA,MACjD,UAAU;AAAA,MACV,GAAG;AAAA,IACL;AAEA,WACE,qBAAC,oBAAkB,GAAG,OACpB;AAAA,0BAAC,SAAI,WAAW,MAAM,QAAQ,GAC5B,8BAAC,aAAU,WAAW,MAAM,KAAK,GAAG,GACtC;AAAA,MACA,oBAAC,SAAI,WAAW,MAAM,UAAU,GAAG;AAAA,OACrC;AAAA,EAEJ;AACF;",
|
|
6
|
+
"names": ["props"]
|
|
7
7
|
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { type FieldMetadata, type FieldName } from '@conform-to/react';
|
|
1
2
|
import { type PropsWithChildren } from 'react';
|
|
2
3
|
import { type ComponentProps } from '../theme/internals.js';
|
|
3
4
|
export declare const useCheckboxFieldTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
|
|
4
5
|
componentThemeName: "CheckboxField";
|
|
5
6
|
themeDefinition: undefined;
|
|
6
7
|
};
|
|
7
|
-
export type CheckboxFieldProps = PropsWithChildren<ComponentProps<typeof useCheckboxFieldTheme> & {
|
|
8
|
+
export type CheckboxFieldProps = PropsWithChildren<ComponentProps<typeof useCheckboxFieldTheme> & ({
|
|
8
9
|
className?: string | undefined;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
field?: FieldMetadata<any, any> | undefined;
|
|
11
|
+
name?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
field?: undefined;
|
|
15
|
+
name?: FieldName<any, any> | string | undefined;
|
|
16
|
+
})>;
|
|
17
|
+
export declare function CheckboxField({ field, name, className, children }: CheckboxFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Field as HeadlessField } from "@headlessui/react";
|
|
4
4
|
import { createComponentTheme } from "../theme/internals.js";
|
|
5
|
-
import { fieldNameContext } from "./internals.js";
|
|
5
|
+
import { fieldContext, fieldNameContext } from "./internals.js";
|
|
6
6
|
export const useCheckboxFieldTheme = createComponentTheme("CheckboxField");
|
|
7
|
-
export function CheckboxField({ name, className, children }) {
|
|
7
|
+
export function CheckboxField({ field, name, className, children }) {
|
|
8
8
|
let theme = useCheckboxFieldTheme();
|
|
9
|
+
if (field) {
|
|
10
|
+
return /* @__PURE__ */ jsx(fieldContext.Provider, { value: field, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children }) });
|
|
11
|
+
}
|
|
9
12
|
if (name) {
|
|
10
13
|
return /* @__PURE__ */ jsx(fieldNameContext.Provider, { value: name, children: /* @__PURE__ */ jsx(HeadlessField, { className: theme(null, className), children }) });
|
|
11
14
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../source/components/CheckboxField.tsx"],
|
|
4
|
-
"sourcesContent": ["import {Field as HeadlessField} from '@headlessui/react';\nimport {type PropsWithChildren} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {fieldNameContext} from './internals.js';\n\nexport const useCheckboxFieldTheme = createComponentTheme('CheckboxField');\n\nexport type CheckboxFieldProps = PropsWithChildren<\n ComponentProps<typeof useCheckboxFieldTheme>
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import {type FieldMetadata, type FieldName} from '@conform-to/react';\nimport {Field as HeadlessField} from '@headlessui/react';\nimport {type PropsWithChildren} from 'react';\n\nimport {type ComponentProps, createComponentTheme} from '../theme/internals.js';\nimport {fieldContext, fieldNameContext} from './internals.js';\n\nexport const useCheckboxFieldTheme = createComponentTheme('CheckboxField');\n\nexport type CheckboxFieldProps = PropsWithChildren<\n ComponentProps<typeof useCheckboxFieldTheme> &\n (\n | {\n className?: string | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n field?: FieldMetadata<any, any> | undefined;\n name?: undefined;\n }\n | {\n className?: string | undefined;\n field?: undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n name?: FieldName<any, any> | string | undefined;\n }\n )\n>;\n\nexport function CheckboxField({field, name, className, children}: CheckboxFieldProps) {\n let theme = useCheckboxFieldTheme();\n\n if (field) {\n return (\n <fieldContext.Provider value={field}>\n <HeadlessField className={theme(null, className)}>{children}</HeadlessField>\n </fieldContext.Provider>\n );\n }\n\n if (name) {\n return (\n <fieldNameContext.Provider value={name}>\n <HeadlessField className={theme(null, className)}>{children}</HeadlessField>\n </fieldNameContext.Provider>\n );\n }\n\n return <HeadlessField className={theme(null, className)}>{children}</HeadlessField>;\n}\n"],
|
|
5
|
+
"mappings": ";AAiCQ;AAhCR,SAAQ,SAAS,qBAAoB;AAGrC,SAA6B,4BAA2B;AACxD,SAAQ,cAAc,wBAAuB;AAEtC,aAAM,wBAAwB,qBAAqB,eAAe;AAoBlE,gBAAS,cAAc,EAAC,OAAO,MAAM,WAAW,SAAQ,GAAuB;AACpF,MAAI,QAAQ,sBAAsB;AAElC,MAAI,OAAO;AACT,WACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAC5B,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS,GAC9D;AAAA,EAEJ;AAEA,MAAI,MAAM;AACR,WACE,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,MAChC,8BAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS,GAC9D;AAAA,EAEJ;AAEA,SAAO,oBAAC,iBAAc,WAAW,MAAM,MAAM,SAAS,GAAI,UAAS;AACrE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,33 +1,56 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
|
|
1
2
|
import { type ComponentProps } from '../theme/internals.js';
|
|
2
3
|
export declare const useComboboxTheme: ((themeProps: {
|
|
3
4
|
readonly disabled: boolean;
|
|
5
|
+
readonly invalid: boolean;
|
|
4
6
|
}) => {
|
|
5
7
|
root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
6
|
-
item: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
7
8
|
icon: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
8
9
|
input: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
9
|
-
|
|
10
|
-
panel: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
11
|
-
items: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
10
|
+
options: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
12
11
|
}) & {
|
|
13
12
|
componentThemeName: "Combobox";
|
|
14
13
|
themeDefinition: {
|
|
15
14
|
readonly variants: {
|
|
16
15
|
readonly disabled: [true, false];
|
|
16
|
+
readonly invalid: [true, false];
|
|
17
17
|
};
|
|
18
|
-
readonly elements: ["root", "
|
|
18
|
+
readonly elements: ["root", "input", "icon", "options"];
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
type ComboboxItem<
|
|
22
|
-
value:
|
|
21
|
+
export type ComboboxItem<V> = {
|
|
22
|
+
value: V;
|
|
23
23
|
label: string;
|
|
24
24
|
};
|
|
25
|
-
export type ComboboxProps<T> = ComponentProps<typeof useComboboxTheme> & {
|
|
25
|
+
export type ComboboxProps<T extends ElementType, V extends boolean | number | string> = PropsWithChildren<ComponentProps<typeof useComboboxTheme> & ComponentPropsWithoutRef<T> & ({
|
|
26
|
+
as?: T | undefined;
|
|
27
|
+
value?: V | undefined;
|
|
28
|
+
defaultValue?: V | undefined;
|
|
29
|
+
multiple?: false | undefined;
|
|
30
|
+
items?: Array<ComboboxItem<V>> | undefined;
|
|
26
31
|
placeholder?: string;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
immediate?: boolean | undefined;
|
|
33
|
+
virtual?: boolean | undefined;
|
|
34
|
+
customValue?: boolean | undefined;
|
|
35
|
+
name?: string | undefined;
|
|
30
36
|
className?: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
onChange?: (selectedValue: V) => void;
|
|
38
|
+
} | {
|
|
39
|
+
as?: T | undefined;
|
|
40
|
+
value?: V[] | undefined;
|
|
41
|
+
defaultValue?: V[] | undefined;
|
|
42
|
+
multiple: true;
|
|
43
|
+
items?: Array<ComboboxItem<V>> | undefined;
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
immediate?: boolean | undefined;
|
|
46
|
+
virtual?: boolean | undefined;
|
|
47
|
+
customValue?: boolean | undefined;
|
|
48
|
+
name?: string | undefined;
|
|
49
|
+
className?: string;
|
|
50
|
+
onChange?: (selectedValue: V[]) => void;
|
|
51
|
+
})>;
|
|
52
|
+
export declare const Combobox: <T extends ElementType = import("react").ExoticComponent<{
|
|
53
|
+
children?: import("react").ReactNode;
|
|
54
|
+
}>, V extends string | number | boolean = string>(props: ComboboxProps<T, V> & {
|
|
55
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
56
|
+
}) => import("react").ReactNode;
|