{"$schema":"https:\/\/ui.particle.academy\/schema\/registry-item.json","name":"repository-browser","type":"registry:ui","title":"RepositoryBrowser","description":"Controlled file and directory browser with stable path handles.","package":"fancy-git-ui","dependencies":[],"registryDependencies":[],"files":[{"path":"components\/fancy\/repository-browser\/repository-browser.tsx","content":"export type RepositoryEntry = {\n  id: string;\n  name: string;\n  path: string;\n  kind: \"file\" | \"directory\" | \"symlink\" | \"submodule\";\n  size?: number;\n  status?: string;\n};\n\nexport interface RepositoryBrowserProps {\n  value: RepositoryEntry[];\n  path: string;\n  selectedPath?: string;\n  onPathChange?: (path: string) => void;\n  onSelectedPathChange?: (path: string) => void;\n  loading?: boolean;\n  className?: string;\n}\n\nexport function RepositoryBrowser({ value, path, selectedPath, onPathChange, onSelectedPathChange, loading, className }: RepositoryBrowserProps) {\n  const crumbs = path.split(\"\/\").filter(Boolean);\n  return <section className={className} data-git-repository-browser=\"\" aria-label=\"Repository browser\" aria-busy={loading}>\n    <nav aria-label=\"Repository path\"><button type=\"button\" onClick={() => onPathChange?.(\"\")}>root<\/button>\n      {crumbs.map((crumb, index) => <span key={`${crumb}-${index}`}> \/ <button type=\"button\" onClick={() => onPathChange?.(crumbs.slice(0, index + 1).join(\"\/\"))}>{crumb}<\/button><\/span>)}\n    <\/nav>\n    <ul>{value.map((entry) => <li key={entry.id} data-git-path={entry.path} data-git-entry-kind={entry.kind}>\n      <button type=\"button\" aria-pressed={selectedPath === entry.path} onClick={() => entry.kind === \"directory\" ? onPathChange?.(entry.path) : onSelectedPathChange?.(entry.path)}>\n        <span aria-hidden>{entry.kind === \"directory\" ? \"\ud83d\udcc1\" : \"\ud83d\udcc4\"}<\/span> {entry.name}<small>{entry.status}<\/small>\n      <\/button>\n    <\/li>)}<\/ul>\n  <\/section>;\n}\n","type":"registry:ui","target":"components\/fancy\/repository-browser\/repository-browser.tsx"}]}