{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "list-classic-toolbar-button",
  "title": "List Toolbar Buttons",
  "description": "Toolbar controls for list creation and management.",
  "dependencies": [
    "@platejs/list-classic"
  ],
  "registryDependencies": [
    "https://platejs.org/r/toolbar.json"
  ],
  "files": [
    {
      "path": "src/registry/ui/list-classic-toolbar-button.tsx",
      "content": "'use client';\n\nimport * as React from 'react';\n\nimport { indentListItems, unindentListItems } from '@platejs/list-classic';\nimport {\n  useListToolbarButton,\n  useListToolbarButtonState,\n} from '@platejs/list-classic/react';\nimport {\n  IndentIcon,\n  List,\n  ListOrdered,\n  ListTodo,\n  OutdentIcon,\n} from 'lucide-react';\nimport { KEYS } from 'platejs';\nimport { useEditorRef } from 'platejs/react';\n\nimport { ToolbarButton } from './toolbar';\n\nconst nodeTypeMap: Record<string, { icon: React.JSX.Element; label: string }> =\n  {\n    [KEYS.olClassic]: { icon: <ListOrdered />, label: 'Numbered List' },\n    [KEYS.taskList]: { icon: <ListTodo />, label: 'Task List' },\n    [KEYS.ulClassic]: { icon: <List />, label: 'Bulleted List' },\n  };\n\nexport function ListToolbarButton({\n  nodeType = KEYS.ulClassic,\n  ...props\n}: React.ComponentProps<typeof ToolbarButton> & {\n  nodeType?: string;\n}) {\n  const state = useListToolbarButtonState({ nodeType });\n  const { props: buttonProps } = useListToolbarButton(state);\n  const { icon, label } = nodeTypeMap[nodeType] ?? nodeTypeMap[KEYS.ulClassic];\n\n  return (\n    <ToolbarButton {...props} {...buttonProps} tooltip={label}>\n      {icon}\n    </ToolbarButton>\n  );\n}\n\nexport function IndentToolbarButton({\n  reverse = false,\n  ...props\n}: React.ComponentProps<typeof ToolbarButton> & {\n  reverse?: boolean;\n}) {\n  const editor = useEditorRef();\n\n  return (\n    <ToolbarButton\n      {...props}\n      onClick={() => {\n        if (reverse) {\n          unindentListItems(editor);\n        } else {\n          indentListItems(editor);\n        }\n      }}\n      tooltip={reverse ? 'Outdent' : 'Indent'}\n    >\n      {reverse ? <OutdentIcon /> : <IndentIcon />}\n    </ToolbarButton>\n  );\n}\n",
      "type": "registry:ui"
    }
  ],
  "meta": {
    "docs": [
      {
        "route": "/docs/list-classic"
      }
    ],
    "examples": [
      "list-classic-demo"
    ]
  },
  "type": "registry:ui"
}