{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "checkbox",
  "title": "TIS Checkbox",
  "author": "TIS Experience Engineering",
  "description": "Checkbox React com estado e input de formulário por Base UI, preservando a anatomia pública do DS TIS.",
  "dependencies": [
    "@base-ui/react@1.6.0",
    "clsx@2.1.1",
    "tailwind-merge@3.6.0",
    "ds-tis@github:tis-experience/ds-tis#dd4c906943847cb7664a72a0c7637a378b39adcc"
  ],
  "files": [
    {
      "path": "registry/tis/checkbox.tsx",
      "content": "import * as React from \"react\"\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { cn } from \"./tis-utils\"\n\ntype CheckboxSize = \"sm\" | \"md\" | \"lg\"\n\ntype CheckboxProps = Omit<CheckboxPrimitive.Root.Props, \"className\"> & {\n  className?: string\n  size?: CheckboxSize\n}\n\nfunction Checkbox({ className, size = \"md\", ...props }: CheckboxProps) {\n  return (\n    <CheckboxPrimitive.Root\n      data-slot=\"checkbox\"\n      className={cn(\n        \"ds-checkbox\",\n        size !== \"md\" && `ds-checkbox--${size}`,\n        className,\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CheckboxItem({ className, ...props }: React.ComponentProps<\"div\">) {\n  return <div data-slot=\"checkbox-item\" className={cn(\"ds-checkbox-item\", className)} {...props} />\n}\n\nfunction CheckboxLabel({ className, ...props }: React.ComponentProps<\"label\">) {\n  return <label data-slot=\"checkbox-label\" className={cn(\"ds-checkbox-label\", className)} {...props} />\n}\n\nfunction CheckboxContent({ className, ...props }: React.ComponentProps<\"span\">) {\n  return <span data-slot=\"checkbox-content\" className={cn(\"ds-checkbox__content\", className)} {...props} />\n}\n\nfunction CheckboxTitle({ className, ...props }: React.ComponentProps<\"span\">) {\n  return <span data-slot=\"checkbox-title\" className={cn(\"ds-checkbox__label\", className)} {...props} />\n}\n\nfunction CheckboxDescription({ className, ...props }: React.ComponentProps<\"span\">) {\n  return <span data-slot=\"checkbox-description\" className={cn(\"ds-checkbox__description\", className)} {...props} />\n}\n\nfunction CheckboxHelper({ className, ...props }: React.ComponentProps<\"span\">) {\n  return <span data-slot=\"checkbox-helper\" className={cn(\"ds-checkbox__helper\", className)} {...props} />\n}\n\nexport {\n  Checkbox,\n  CheckboxContent,\n  CheckboxDescription,\n  CheckboxHelper,\n  CheckboxItem,\n  CheckboxLabel,\n  CheckboxTitle,\n  type CheckboxProps,\n  type CheckboxSize,\n}\n",
      "type": "registry:ui",
      "target": "@ui/checkbox.tsx"
    },
    {
      "path": "registry/tis/tis-utils.ts",
      "content": "import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n",
      "type": "registry:lib",
      "target": "@ui/tis-utils.ts"
    }
  ],
  "css": {
    "@import \"ds-tis/css\"": {},
    ".ds-checkbox[data-checked]": {
      "background-color": "var(--ds-checkbox-box-fill-checked-default)",
      "border-width": "0"
    },
    ".ds-checkbox[data-checked]::after": {
      "transform": "translate(-50%, -50%) scale(1)"
    },
    ".ds-checkbox[data-indeterminate]": {
      "background-color": "var(--ds-checkbox-box-fill-indeterminate-default)",
      "border-width": "0"
    },
    ".ds-checkbox[data-indeterminate]::after": {
      "top": "50%",
      "left": "50%",
      "width": "calc(var(--ds-checkbox-box-size-md) * 0.625)",
      "height": "max(var(--ds-space-hairline), calc(var(--ds-checkbox-box-size-md) * 0.125))",
      "background-color": "var(--ds-checkbox-mark-fill-indeterminate-default)",
      "-webkit-mask": "none",
      "mask": "none",
      "transform": "translate(-50%, -50%) scale(1)",
      "border-radius": "var(--ds-space-hairline)"
    },
    ".ds-checkbox:hover:not([data-disabled])": {
      "background-color": "var(--ds-checkbox-box-fill-unchecked-hover)",
      "border-color": "var(--ds-checkbox-box-border-color-unchecked-hover)"
    },
    ".ds-checkbox[data-checked]:hover:not([data-disabled])": {
      "background-color": "var(--ds-checkbox-box-fill-checked-hover)"
    },
    ".ds-checkbox[data-checked]:hover:not([data-disabled])::after": {
      "background-color": "var(--ds-checkbox-mark-fill-checked-hover)"
    },
    ".ds-checkbox[data-indeterminate]:hover:not([data-disabled])": {
      "background-color": "var(--ds-checkbox-box-fill-indeterminate-hover)"
    },
    ".ds-checkbox[data-indeterminate]:hover:not([data-disabled])::after": {
      "background-color": "var(--ds-checkbox-mark-fill-indeterminate-hover)"
    },
    ".ds-checkbox[data-disabled]": {
      "background-color": "var(--ds-checkbox-box-fill-unchecked-disabled)",
      "border-color": "var(--ds-checkbox-box-border-color-unchecked-disabled)",
      "cursor": "not-allowed"
    },
    ".ds-checkbox[data-checked][data-disabled]": {
      "background-color": "var(--ds-checkbox-box-fill-checked-disabled)",
      "border-width": "0"
    },
    ".ds-checkbox[data-checked][data-disabled]::after": {
      "background-color": "var(--ds-checkbox-mark-fill-checked-disabled)"
    },
    ".ds-checkbox[data-indeterminate][data-disabled]": {
      "background-color": "var(--ds-checkbox-box-fill-indeterminate-disabled)",
      "border-width": "0"
    },
    ".ds-checkbox[data-indeterminate][data-disabled]::after": {
      "background-color": "var(--ds-checkbox-mark-fill-indeterminate-disabled)"
    },
    ".ds-checkbox-label:has(.ds-checkbox[data-disabled])": {
      "cursor": "not-allowed",
      "color": "var(--ds-form-field-label-color-disabled)"
    },
    ".ds-checkbox-label:has(.ds-checkbox[data-disabled]) .ds-checkbox__label": {
      "color": "var(--ds-form-field-label-color-disabled)"
    },
    ".ds-checkbox--sm[data-indeterminate]::after": {
      "width": "calc(var(--ds-checkbox-box-size-sm) * 0.5)",
      "height": "calc(var(--ds-checkbox-box-size-sm) * 0.09375)"
    },
    ".ds-checkbox--lg[data-indeterminate]::after": {
      "width": "calc(var(--ds-checkbox-box-size-lg) * 0.5)",
      "height": "calc(var(--ds-checkbox-box-size-lg) * 0.1041666667)"
    }
  },
  "meta": {
    "provider": "Base UI",
    "providerRole": "output-provider",
    "status": "beta",
    "wave": "forms"
  },
  "docs": "Use CheckboxLabel para ampliar o target e preserve indeterminate no próprio controle. Mantenha @import \"ds-tis/css\" como o primeiro import do CSS global.",
  "type": "registry:ui"
}