{
  "name": "solid-ui-word-counter",
  "title": "solid-ui-word-counter",
  "type": "registry:component",
  "description": "",
  "registryDependencies": [],
  "dependencies": [
    "prosekit@^0.22.0"
  ],
  "files": [
    {
      "path": "registry/src/solid/ui/word-counter/index.ts",
      "type": "registry:component",
      "target": "components/editor/ui/word-counter/index.ts",
      "content": "export { default as WordCounter } from './word-counter.tsx'\n"
    },
    {
      "path": "registry/src/solid/ui/word-counter/word-counter.tsx",
      "type": "registry:component",
      "target": "components/editor/ui/word-counter/word-counter.tsx",
      "content": "import type { Editor } from 'prosekit/core'\nimport { useEditorDerivedValue } from 'prosekit/solid'\nimport type { JSX } from 'solid-js'\n\nfunction getWordCount(editor: Editor) {\n  const doc = editor.state.doc\n  const words = doc ? doc.textBetween(0, doc.content.size, ' ') : ''\n  const wordCount = words.split(/\\s+/).filter((s) => s).length\n  const characterCount = doc ? doc.textContent.length : 0\n  return { wordCount, characterCount }\n}\n\nexport default function WordCounter(): JSX.Element {\n  const counts = useEditorDerivedValue(getWordCount)\n\n  return (\n    <div class=\"p-4 text-center italic tabular-nums\">\n      Word Count: {counts().wordCount}\n      <br />\n      Character Count: {counts().characterCount}\n    </div>\n  )\n}\n"
    }
  ],
  "meta": {
    "hasIcons": false,
    "hidden": false,
    "story": "",
    "framework": "solid",
    "accumulatedFiles": [
      "registry/src/solid/ui/word-counter/index.ts",
      "registry/src/solid/ui/word-counter/word-counter.tsx"
    ],
    "internalDependencies": []
  },
  "$schema": "https://ui.shadcn.com/schema/registry-item.json"
}
