import React from "react"; import {Meta} from "@storybook/react"; import {checkbox} from "@nextui-org/theme"; import {CloseIcon} from "@nextui-org/shared-icons"; import {Checkbox, CheckboxIconProps, CheckboxProps} from "../src"; export default { title: "Components/Checkbox", component: Checkbox, argTypes: { color: { control: { type: "select", }, options: ["default", "primary", "secondary", "success", "warning", "danger"], }, radius: { control: { type: "select", }, options: ["none", "sm", "md", "lg", "full"], }, size: { control: { type: "select", }, options: ["sm", "md", "lg"], }, lineThrough: { control: { type: "boolean", }, }, isDisabled: { control: { type: "boolean", }, }, }, } as Meta; const defaultProps: CheckboxProps = { ...checkbox.defaultVariants, children: "Option", }; const ControlledTemplate = (args: CheckboxProps) => { const [selected, setSelected] = React.useState(true); React.useEffect(() => { // eslint-disable-next-line no-console console.log("Checkbox ", selected); }, [selected]); return (
Subscribe (controlled)

Selected: {selected ? "true" : "false"}

); }; export const Default = { args: { ...defaultProps, }, }; export const IsDisabled = { args: { ...defaultProps, isDisabled: true, }, }; export const DefaultSelected = { args: { ...defaultProps, defaultSelected: true, }, }; export const CustomIconNode = { args: { ...defaultProps, icon: , }, }; export const CustomIconFunction = { args: { ...defaultProps, // eslint-disable-next-line react/display-name icon: (props: CheckboxIconProps) => , }, }; export const AlwaysSelected = { args: { ...defaultProps, isSelected: true, }, }; export const IsIndeterminate = { args: { ...defaultProps, isIndeterminate: true, }, }; export const LineThrough = { args: { ...defaultProps, lineThrough: true, }, }; export const DisableAnimation = { args: { ...defaultProps, disableAnimation: true, }, }; export const Controlled = { render: ControlledTemplate, args: { ...defaultProps, }, };