{
	"$schema": "https://ui.shadcn.com/schema/registry.json",
	"name": "optics",
	"homepage": "https://optics.agusmayol.com.ar",
	"items": [
		{
			"name": "accordion",
			"type": "registry:component",
			"title": "Accordion",
			"description": "A vertically stacked set of interactive headings that each reveal a section of content.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/get-strict-context.json",
				"https://optics.agusmayol.com.ar/r/use-controlled-state.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"motion",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/accordion.jsx",
					"type": "registry:component",
					"target": "components/optics/accordion.jsx"
				}
			]
		},
		{
			"name": "alert-dialog",
			"type": "registry:component",
			"title": "Alert Dialog",
			"description": "A modal dialog that interrupts the user with important content and expects a response.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/alert-dialog.jsx",
					"type": "registry:component",
					"target": "components/optics/alert-dialog.jsx"
				}
			]
		},
		{
			"name": "alert",
			"type": "registry:component",
			"title": "Alert",
			"description": "Displays a callout for user attention.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"class-variance-authority",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/alert.jsx",
					"type": "registry:component",
					"target": "components/optics/alert.jsx"
				}
			]
		},
		{
			"name": "aspect-ratio",
			"type": "registry:component",
			"title": "Aspect Ratio",
			"description": "Displays content within a desired ratio.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/aspect-ratio.jsx",
					"type": "registry:component",
					"target": "components/optics/aspect-ratio.jsx"
				}
			]
		},
		{
			"name": "avatar",
			"type": "registry:component",
			"title": "Avatar",
			"description": "An image element with a fallback for representing the user.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/tooltip.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/avatar.jsx",
					"type": "registry:component",
					"target": "components/optics/avatar.jsx"
				}
			]
		},
		{
			"name": "badge",
			"type": "registry:component",
			"title": "Badge",
			"description": "Displays a badge or a component that looks like a badge.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/badge.jsx",
					"type": "registry:component",
					"target": "components/optics/badge.jsx"
				}
			]
		},
		{
			"name": "breadcrumb",
			"type": "registry:component",
			"title": "Breadcrumb",
			"description": "Displays the path to the current resource using a hierarchy of links.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/breadcrumb.jsx",
					"type": "registry:component",
					"target": "components/optics/breadcrumb.jsx"
				}
			]
		},
		{
			"name": "button-group",
			"type": "registry:component",
			"title": "Button Group",
			"description": "Groups buttons together with proper spacing and styling.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/separator.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/button-group.jsx",
					"type": "registry:component",
					"target": "components/optics/button-group.jsx"
				}
			]
		},
		{
			"name": "button",
			"type": "registry:component",
			"title": "Button",
			"description": "Displays a button or a component that looks like a button.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/button.jsx",
					"type": "registry:component",
					"target": "components/optics/button.jsx"
				}
			]
		},
		{
			"name": "calendar",
			"type": "registry:component",
			"title": "Calendar",
			"description": "A date field component that allows users to enter and edit date.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"react-day-picker",
				"date-fns",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/calendar.jsx",
					"type": "registry:component",
					"target": "components/optics/calendar.jsx"
				}
			]
		},
		{
			"name": "card",
			"type": "registry:component",
			"title": "Card",
			"description": "Displays a card with header, content, and footer.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/card.jsx",
					"type": "registry:component",
					"target": "components/optics/card.jsx"
				}
			]
		},
		{
			"name": "carousel",
			"type": "registry:component",
			"title": "Carousel",
			"description": "A carousel with motion and swipe built using Embla.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"embla-carousel-react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/carousel.jsx",
					"type": "registry:component",
					"target": "components/optics/carousel.jsx"
				}
			]
		},
		{
			"name": "chart",
			"type": "registry:component",
			"title": "Chart",
			"description": "Beautiful charts built with Recharts.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["recharts", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/chart.jsx",
					"type": "registry:component",
					"target": "components/optics/chart.jsx"
				}
			]
		},
		{
			"name": "checkbox",
			"type": "registry:component",
			"title": "Checkbox",
			"description": "A control that allows the user to toggle between checked and unchecked states.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/utils.json",
				"https://optics.agusmayol.com.ar/r/button.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/checkbox.jsx",
					"type": "registry:component",
					"target": "components/optics/checkbox.jsx"
				}
			]
		},
		{
			"name": "code-block",
			"type": "registry:component",
			"title": "Code Block",
			"description": "A syntax-highlighted code block component with copy functionality.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/select.json",
				"https://optics.agusmayol.com.ar/r/sonner.json",
				"https://optics.agusmayol.com.ar/r/scroll-area.json",
				"https://optics.agusmayol.com.ar/r/use-controlled-state.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"@shikijs/transformers",
				"shiki",
				"lucide-react",
				"motion",
				"react-icons",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/code-block.jsx",
					"type": "registry:component",
					"target": "components/optics/code-block.jsx"
				}
			]
		},
		{
			"name": "code-snippet",
			"type": "registry:component",
			"title": "Code Snippet",
			"description": "A code snippet component with tabs and copy functionality.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/tabs.json",
				"https://optics.agusmayol.com.ar/r/scroll-area.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"lucide-react",
				"@base-ui/react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/code-snippet.jsx",
					"type": "registry:component",
					"target": "components/optics/code-snippet.jsx"
				}
			]
		},
		{
			"name": "collapsible",
			"type": "registry:component",
			"title": "Collapsible",
			"description": "An interactive component which expands/collapses a panel.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/collapsible.jsx",
					"type": "registry:component",
					"target": "components/optics/collapsible.jsx"
				}
			]
		},
		{
			"name": "command",
			"type": "registry:component",
			"title": "Command",
			"description": "Fast, composable, unstyled command menu for React.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/dialog.json",
				"https://optics.agusmayol.com.ar/r/scroll-area.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["cmdk", "lucide-react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/command.jsx",
					"type": "registry:component",
					"target": "components/optics/command.jsx"
				}
			]
		},
		{
			"name": "context-menu",
			"type": "registry:component",
			"title": "Context Menu",
			"description": "Displays a menu to the user triggered by a right click or a long press.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/context-menu.jsx",
					"type": "registry:component",
					"target": "components/optics/context-menu.jsx"
				}
			]
		},
		{
			"name": "data-table",
			"type": "registry:component",
			"title": "Data Table",
			"description": "Powerful table and datagrid built with TanStack Table.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/table.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@tanstack/react-table", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/data-table.jsx",
					"type": "registry:component",
					"target": "components/optics/data-table.jsx"
				}
			]
		},
		{
			"name": "date-picker",
			"type": "registry:component",
			"title": "Date Picker",
			"description": "A date field component that allows users to enter and edit date.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/calendar.json",
				"https://optics.agusmayol.com.ar/r/popover.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"react-day-picker",
				"date-fns",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/date-picker.jsx",
					"type": "registry:component",
					"target": "components/optics/date-picker.jsx"
				}
			]
		},
		{
			"name": "dialog",
			"type": "registry:component",
			"title": "Dialog",
			"description": "A window overlaid on either the primary window or another dialog window.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/dialog.jsx",
					"type": "registry:component",
					"target": "components/optics/dialog.jsx"
				}
			]
		},
		{
			"name": "drawer",
			"type": "registry:component",
			"title": "Drawer",
			"description": "A drawer component built with Vaul.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["vaul-base", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/drawer.jsx",
					"type": "registry:component",
					"target": "components/optics/drawer.jsx"
				}
			]
		},
		{
			"name": "dropdown-menu",
			"type": "registry:component",
			"title": "Dropdown Menu",
			"description": "Displays a menu to the user — such as a set of actions or functions — triggered by a button.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/dropdown-menu.jsx",
					"type": "registry:component",
					"target": "components/optics/dropdown-menu.jsx"
				}
			]
		},
		{
			"name": "empty",
			"type": "registry:component",
			"title": "Empty",
			"description": "Displays an empty state with optional illustration, title, and description.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["lucide-react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/empty.jsx",
					"type": "registry:component",
					"target": "components/optics/empty.jsx"
				}
			]
		},
		{
			"name": "field",
			"type": "registry:component",
			"title": "Field",
			"description": "A field component for grouping form elements with labels and descriptions.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/label.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/field.jsx",
					"type": "registry:component",
					"target": "components/optics/field.jsx"
				}
			]
		},
		{
			"name": "form",
			"type": "registry:component",
			"title": "Form",
			"description": "Builds forms with React Hook Form.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/label.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["react-hook-form", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/form.jsx",
					"type": "registry:component",
					"target": "components/optics/form.jsx"
				}
			]
		},
		{
			"name": "grid",
			"type": "registry:component",
			"title": "Grid",
			"description": "A flexible grid system component for layout.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/grid.jsx",
					"type": "registry:component",
					"target": "components/optics/grid.jsx"
				}
			]
		},
		{
			"name": "guided-tour",
			"type": "registry:component",
			"title": "Guided Tour",
			"description": "A guided tour component for onboarding users.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/popover.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/guided-tour.jsx",
					"type": "registry:component",
					"target": "components/optics/guided-tour.jsx"
				}
			]
		},
		{
			"name": "hover-card",
			"type": "registry:component",
			"title": "Hover Card",
			"description": "For sighted users to preview content available behind a link.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/hover-card.jsx",
					"type": "registry:component",
					"target": "components/optics/hover-card.jsx"
				}
			]
		},
		{
			"name": "input-group",
			"type": "registry:component",
			"title": "Input Group",
			"description": "Groups input fields with addons, buttons, and text.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/input.json",
				"https://optics.agusmayol.com.ar/r/textarea.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["class-variance-authority", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/input-group.jsx",
					"type": "registry:component",
					"target": "components/optics/input-group.jsx"
				}
			]
		},
		{
			"name": "input-otp",
			"type": "registry:component",
			"title": "Input OTP",
			"description": "Accessible one-time password component with copy paste support.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["input-otp", "lucide-react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/input-otp.jsx",
					"type": "registry:component",
					"target": "components/optics/input-otp.jsx"
				}
			]
		},
		{
			"name": "input",
			"type": "registry:component",
			"title": "Input",
			"description": "Displays a form input field or a component that looks like an input.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/input.jsx",
					"type": "registry:component",
					"target": "components/optics/input.jsx"
				}
			]
		},
		{
			"name": "item",
			"type": "registry:component",
			"title": "Item",
			"description": "A flexible item component for displaying content.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/item.jsx",
					"type": "registry:component",
					"target": "components/optics/item.jsx"
				}
			]
		},
		{
			"name": "kbd",
			"type": "registry:component",
			"title": "KBD",
			"description": "Keyboard key component for displaying keyboard shortcuts.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"react-hotkeys-hook",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/kbd.jsx",
					"type": "registry:component",
					"target": "components/optics/kbd.jsx"
				}
			]
		},
		{
			"name": "label",
			"type": "registry:component",
			"title": "Label",
			"description": "Renders an accessible label associated with controls.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/label.jsx",
					"type": "registry:component",
					"target": "components/optics/label.jsx"
				}
			]
		},
		{
			"name": "menubar",
			"type": "registry:component",
			"title": "Menubar",
			"description": "A visually persistent menu common in desktop applications.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/dropdown-menu.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/menubar.jsx",
					"type": "registry:component",
					"target": "components/optics/menubar.jsx"
				}
			]
		},
		{
			"name": "multi-select",
			"type": "registry:component",
			"title": "Multi Select",
			"description": "A select component for allowing multiple selections.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/badge.json",
				"https://optics.agusmayol.com.ar/r/checkbox.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/multi-select.jsx",
					"type": "registry:component",
					"target": "components/optics/multi-select.jsx"
				}
			]
		},
		{
			"name": "navigation-menu",
			"type": "registry:component",
			"title": "Navigation Menu",
			"description": "A collection of links for navigating websites.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/navigation-menu.jsx",
					"type": "registry:component",
					"target": "components/optics/navigation-menu.jsx"
				}
			]
		},
		{
			"name": "pagination",
			"type": "registry:component",
			"title": "Pagination",
			"description": "Pagination with page navigation, next and previous links.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["lucide-react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/pagination.jsx",
					"type": "registry:component",
					"target": "components/optics/pagination.jsx"
				}
			]
		},
		{
			"name": "popover",
			"type": "registry:component",
			"title": "Popover",
			"description": "Displays rich content in a portal, triggered by a button.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/popover.jsx",
					"type": "registry:component",
					"target": "components/optics/popover.jsx"
				}
			]
		},
		{
			"name": "progress",
			"type": "registry:component",
			"title": "Progress",
			"description": "Displays an indicator showing the completion progress of a task.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/progress.jsx",
					"type": "registry:component",
					"target": "components/optics/progress.jsx"
				}
			]
		},
		{
			"name": "radio-group",
			"type": "registry:component",
			"title": "Radio Group",
			"description": "A set of checkable buttons—known as radio buttons.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/radio-group.jsx",
					"type": "registry:component",
					"target": "components/optics/radio-group.jsx"
				}
			]
		},
		{
			"name": "resizable",
			"type": "registry:component",
			"title": "Resizable",
			"description": "Accessible resizable panel groups and layouts.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["react-resizable-panels", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/resizable.jsx",
					"type": "registry:component",
					"target": "components/optics/resizable.jsx"
				}
			]
		},
		{
			"name": "scroll-area",
			"type": "registry:component",
			"title": "Scroll Area",
			"description": "Augments native scroll functionality for custom, cross-browser styling.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/scroll-area.jsx",
					"type": "registry:component",
					"target": "components/optics/scroll-area.jsx"
				}
			]
		},
		{
			"name": "select",
			"type": "registry:component",
			"title": "Select",
			"description": "Displays a list of options for the user to pick from.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/select.jsx",
					"type": "registry:component",
					"target": "components/optics/select.jsx"
				}
			]
		},
		{
			"name": "separator",
			"type": "registry:component",
			"title": "Separator",
			"description": "Visually or semantically separates content.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/separator.jsx",
					"type": "registry:component",
					"target": "components/optics/separator.jsx"
				}
			]
		},
		{
			"name": "sheet",
			"type": "registry:component",
			"title": "Sheet",
			"description": "Extends the Dialog component to display content that complements the main content.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"tailwind-variants",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/sheet.jsx",
					"type": "registry:component",
					"target": "components/optics/sheet.jsx"
				}
			]
		},
		{
			"name": "show-more",
			"type": "registry:component",
			"title": "Show More",
			"description": "A component that shows/hides additional content with smooth animations.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/separator.json",
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/accordion.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["lucide-react", "motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/show-more.jsx",
					"type": "registry:component",
					"target": "components/optics/show-more.jsx"
				}
			]
		},
		{
			"name": "sidebar",
			"type": "registry:component",
			"title": "Sidebar",
			"description": "A composable sidebar component with desktop and mobile support.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/input.json",
				"https://optics.agusmayol.com.ar/r/separator.json",
				"https://optics.agusmayol.com.ar/r/sheet.json",
				"https://optics.agusmayol.com.ar/r/skeleton.json",
				"https://optics.agusmayol.com.ar/r/tooltip.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui/react",
				"lucide-react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/sidebar.jsx",
					"type": "registry:component",
					"target": "components/optics/sidebar.jsx"
				}
			]
		},
		{
			"name": "skeleton",
			"type": "registry:component",
			"title": "Skeleton",
			"description": "Use to show a placeholder while content is loading.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/skeleton.jsx",
					"type": "registry:component",
					"target": "components/optics/skeleton.jsx"
				}
			]
		},
		{
			"name": "slider",
			"type": "registry:component",
			"title": "Slider",
			"description": "An input where the user selects a value from within a given range.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/slider.jsx",
					"type": "registry:component",
					"target": "components/optics/slider.jsx"
				}
			]
		},
		{
			"name": "sonner",
			"type": "registry:component",
			"title": "Sonner",
			"description": "Toast component built with Sonner.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/spinner.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"next-themes",
				"sonner",
				"lucide-react",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/sonner.jsx",
					"type": "registry:component",
					"target": "components/optics/sonner.jsx"
				}
			]
		},
		{
			"name": "spinner",
			"type": "registry:component",
			"title": "Spinner",
			"description": "An animated spinner component.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/spinner.jsx",
					"type": "registry:component",
					"target": "components/optics/spinner.jsx"
				}
			]
		},
		{
			"name": "star-rating",
			"type": "registry:component",
			"title": "Star Rating",
			"description": "An interactive star rating component.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["lucide-react", "motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/star-rating.jsx",
					"type": "registry:component",
					"target": "components/optics/star-rating.jsx"
				}
			]
		},
		{
			"name": "switch",
			"type": "registry:component",
			"title": "Switch",
			"description": "A control that allows the user to toggle between checked and unchecked states.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/switch.jsx",
					"type": "registry:component",
					"target": "components/optics/switch.jsx"
				}
			]
		},
		{
			"name": "table",
			"type": "registry:component",
			"title": "Table",
			"description": "A responsive table component.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/table.jsx",
					"type": "registry:component",
					"target": "components/optics/table.jsx"
				}
			]
		},
		{
			"name": "tabs",
			"type": "registry:component",
			"title": "Tabs",
			"description": "A set of layered sections of content—known as tab panels.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/highlight.json",
				"https://optics.agusmayol.com.ar/r/auto-height.json",
				"https://optics.agusmayol.com.ar/r/get-strict-context.json",
				"https://optics.agusmayol.com.ar/r/use-controlled-state.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": [
				"@base-ui-components/react",
				"motion",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/tabs.jsx",
					"type": "registry:component",
					"target": "components/optics/tabs.jsx"
				}
			]
		},
		{
			"name": "textarea",
			"type": "registry:component",
			"title": "Textarea",
			"description": "Displays a form textarea field or a component that looks like a textarea.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/textarea.jsx",
					"type": "registry:component",
					"target": "components/optics/textarea.jsx"
				}
			]
		},
		{
			"name": "theme-switcher",
			"type": "registry:component",
			"title": "Theme Switcher",
			"description": "A theme switcher component for toggling between themes.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/use-controlled-state.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["lucide-react", "motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/theme-switcher.jsx",
					"type": "registry:component",
					"target": "components/optics/theme-switcher.jsx"
				}
			]
		},
		{
			"name": "timezone",
			"type": "registry:component",
			"title": "Timezone",
			"description": "A component for displaying and converting timezones.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/tooltip.json",
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["ms", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/timezone.jsx",
					"type": "registry:component",
					"target": "components/optics/timezone.jsx"
				}
			]
		},
		{
			"name": "toggle-group",
			"type": "registry:component",
			"title": "Toggle Group",
			"description": "A set of two-state buttons that can be toggled on or off.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/toggle.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/toggle-group.jsx",
					"type": "registry:component",
					"target": "components/optics/toggle-group.jsx"
				}
			]
		},
		{
			"name": "toggle",
			"type": "registry:component",
			"title": "Toggle",
			"description": "A two-state button that can be either on or off.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": [
				"@base-ui/react",
				"class-variance-authority",
				"clsx",
				"tailwind-merge"
			],
			"files": [
				{
					"path": "registry/optics/toggle.jsx",
					"type": "registry:component",
					"target": "components/optics/toggle.jsx"
				}
			]
		},
		{
			"name": "tooltip",
			"type": "registry:component",
			"title": "Tooltip",
			"description": "A popup that displays information related to an element.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/button.json",
				"https://optics.agusmayol.com.ar/r/utils.json"
			],
			"dependencies": ["@base-ui/react", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/tooltip.jsx",
					"type": "registry:component",
					"target": "components/optics/tooltip.jsx"
				}
			]
		},
		{
			"name": "get-strict-context",
			"type": "registry:lib",
			"title": "Get strict context",
			"description": "Library utility: get-strict-context",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/lib/get-strict-context.jsx",
					"type": "registry:lib",
					"target": "lib/get-strict-context.jsx"
				}
			]
		},
		{
			"name": "use-controlled-state",
			"type": "registry:lib",
			"title": "Use controlled state",
			"description": "Hook utility: use-controlled-state",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/hooks/use-controlled-state.jsx",
					"type": "registry:lib",
					"target": "hooks/use-controlled-state.jsx"
				}
			]
		},
		{
			"name": "utils",
			"type": "registry:lib",
			"title": "Utils",
			"description": "Library utility: utils",
			"registryDependencies": [],
			"dependencies": ["clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/lib/utils.js",
					"type": "registry:lib",
					"target": "lib/utils.js"
				}
			]
		},
		{
			"name": "use-auto-height",
			"type": "registry:lib",
			"title": "Use auto height",
			"description": "Hook utility: use-auto-height",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/hooks/use-auto-height.jsx",
					"type": "registry:lib",
					"target": "hooks/use-auto-height.jsx"
				}
			]
		},
		{
			"name": "use-has-primary-touch",
			"type": "registry:lib",
			"title": "Use has primary touch",
			"description": "Hook utility: use-has-primary-touch",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/hooks/use-has-primary-touch.jsx",
					"type": "registry:lib",
					"target": "hooks/use-has-primary-touch.jsx"
				}
			]
		},
		{
			"name": "highlight",
			"type": "registry:component",
			"title": "Highlight",
			"description": "Highlight effect component for tabs and other interactive elements.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/helpers/primitives/effects/highlight.jsx",
					"type": "registry:component",
					"target": "components/optics/helpers/primitives/effects/highlight.jsx"
				}
			]
		},
		{
			"name": "auto-height",
			"type": "registry:component",
			"title": "Auto Height",
			"description": "Auto height component for dynamic height animations.",
			"registryDependencies": [
				"https://optics.agusmayol.com.ar/r/use-auto-height.json",
				"https://optics.agusmayol.com.ar/r/slot.json"
			],
			"dependencies": ["motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/helpers/primitives/effects/auto-height.jsx",
					"type": "registry:component",
					"target": "components/optics/helpers/primitives/effects/auto-height.jsx"
				}
			]
		},
		{
			"name": "slot",
			"type": "registry:component",
			"title": "Slot",
			"description": "Slot component for motion animations.",
			"registryDependencies": ["https://optics.agusmayol.com.ar/r/utils.json"],
			"dependencies": ["motion", "clsx", "tailwind-merge"],
			"files": [
				{
					"path": "registry/optics/helpers/primitives/animate/slot.jsx",
					"type": "registry:component",
					"target": "components/optics/helpers/primitives/animate/slot.jsx"
				}
			]
		},
		{
			"name": "cursor-rule-back-end",
			"type": "registry:file",
			"title": "Cursor Rule: Back End",
			"description": "Cursor rule file for back-end development guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/back-end.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/back-end.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-bulk-processing",
			"type": "registry:file",
			"title": "Cursor Rule: Bulk Processing",
			"description": "Cursor rule file for bulk processing guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/bulk-processing.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/bulk-processing.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-commits-convention",
			"type": "registry:file",
			"title": "Cursor Rule: Commits Convention",
			"description": "Cursor rule file for commit conventions.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/commits-convention.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/commits-convention.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-front-end",
			"type": "registry:file",
			"title": "Cursor Rule: Front End",
			"description": "Cursor rule file for front-end development guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/front-end.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/front-end.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-general",
			"type": "registry:file",
			"title": "Cursor Rule: General",
			"description": "Cursor rule file for general development guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/general.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/general.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-react-optimization",
			"type": "registry:file",
			"title": "Cursor Rule: React Optimization",
			"description": "Cursor rule file for React optimization guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/react-optimization.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/react-optimization.mdc"
				}
			]
		},
		{
			"name": "cursor-rule-web-interface-guidelines",
			"type": "registry:file",
			"title": "Cursor Rule: Web Interface Guidelines",
			"description": "Cursor rule file for web interface guidelines.",
			"registryDependencies": [],
			"dependencies": [],
			"files": [
				{
					"path": "registry/optics/cursor/rules/web-interface-guidelines.mdc",
					"type": "registry:file",
					"target": "~/.cursor/rules/web-interface-guidelines.mdc"
				}
			]
		}
	]
}
