UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

66 lines (65 loc) 2.48 kB
"use client"; import { getRadius } from "../../../core/utils/get-size/get-size.mjs"; import { createVarsResolver } from "../../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs"; import { useProps } from "../../../core/MantineProvider/use-props/use-props.mjs"; import { useStyles } from "../../../core/styles-api/use-styles/use-styles.mjs"; import { factory } from "../../../core/factory/factory.mjs"; import { UnstyledButton } from "../../UnstyledButton/UnstyledButton.mjs"; import { CheckboxGroupContext } from "../CheckboxGroup/CheckboxGroup.mjs"; import CheckboxCard_module_default from "./CheckboxCard.module.mjs"; import { createContext, use } from "react"; import { useUncontrolled } from "@mantine/hooks"; import { jsx } from "react/jsx-runtime"; //#region packages/@mantine/core/src/components/Checkbox/CheckboxCard/CheckboxCard.tsx const CheckboxCardContext = createContext(null); const defaultProps = { withBorder: true }; const varsResolver = createVarsResolver((_, { radius }) => ({ card: { "--card-radius": getRadius(radius) } })); const CheckboxCard = factory((_props) => { const props = useProps("CheckboxCard", defaultProps, _props); const { classNames, className, style, styles, unstyled, vars, checked, mod, withBorder, value, onClick, defaultChecked, onChange, attributes, ...others } = props; const getStyles = useStyles({ name: "CheckboxCard", classes: CheckboxCard_module_default, props, className, style, classNames, styles, unstyled, attributes, vars, varsResolver, rootSelector: "card" }); const ctx = use(CheckboxGroupContext); const [_value, setValue] = useUncontrolled({ value: typeof checked === "boolean" ? checked : ctx ? ctx.value.includes(value || "") : void 0, defaultValue: defaultChecked, finalValue: false, onChange }); return /* @__PURE__ */ jsx(CheckboxCardContext, { value: { checked: _value }, children: /* @__PURE__ */ jsx(UnstyledButton, { mod: [{ "with-border": withBorder, checked: _value }, mod], ...getStyles("card"), ...others, role: "checkbox", "aria-checked": _value, onClick: (event) => { onClick?.(event); ctx?.onChange(value || ""); setValue(!_value); } }) }); }); CheckboxCard.displayName = "@mantine/core/CheckboxCard"; CheckboxCard.classes = CheckboxCard_module_default; CheckboxCard.varsResolver = varsResolver; //#endregion export { CheckboxCard, CheckboxCardContext }; //# sourceMappingURL=CheckboxCard.mjs.map