{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "grid-list",
  "dependencies": [
    "react-aria-components",
    "tailwind-variants"
  ],
  "registryDependencies": [
    "https://taki-ui.com/r/utils.json"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/grid-list.tsx",
      "content": "\"use client\"\n\nimport React from \"react\"\nimport {\n  GridList as AriaGridList,\n  GridListItem as AriaGridListItem,\n  GridListProps as AriaGridListProps,\n  composeRenderProps,\n  GridListItemProps,\n} from \"react-aria-components\"\nimport { tv } from \"tailwind-variants\"\n\nimport { focusRing } from \"../lib/utils\"\n\nconst gridListStyles = tv({\n  base: \"flex flex-col gap-0.5 overflow-auto rounded-lg border bg-background p-1 outline-none\",\n  variants: {\n    isFocusVisible: {\n      true: \"ring-2 ring-ring ring-offset-2 ring-offset-background\",\n    },\n  },\n})\n\nexport interface GridListProps<T>\n  extends Omit<AriaGridListProps<T>, \"children\" | \"className\">,\n    React.PropsWithChildren {\n  className?: string\n}\n\nexport function GridList<T extends object>({\n  children,\n  className,\n  ...props\n}: GridListProps<T>) {\n  return (\n    <AriaGridList\n      {...props}\n      className={composeRenderProps(className, (className, renderProps) =>\n        gridListStyles({ ...renderProps, className })\n      )}\n    >\n      {children}\n    </AriaGridList>\n  )\n}\n\nconst gridListItemStyles = tv({\n  extend: focusRing,\n  base: \"group relative flex cursor-default select-none items-center gap-3 rounded-md px-3 py-2 text-sm outline-none transition-colors\",\n  variants: {\n    isSelected: {\n      false: \"hover:bg-accent hover:text-accent-foreground\",\n      true: \"bg-accent text-accent-foreground\",\n    },\n    isDisabled: {\n      true: \"pointer-events-none opacity-50\",\n    },\n    isFocusVisible: {\n      true: \"ring-2 ring-ring ring-offset-1\",\n    },\n  },\n})\n\nexport function GridListItem(props: GridListItemProps) {\n  return (\n    <AriaGridListItem\n      {...props}\n      className={composeRenderProps(props.className, (className, renderProps) =>\n        gridListItemStyles({ ...renderProps, className })\n      )}\n    />\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}