{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "demo-primitives-texts-splitting",
  "title": "Splitting Text Demo",
  "description": "Demo showing an animated splitting text.",
  "registryDependencies": [
    "@odysseyui/primitives-texts-splitting"
  ],
  "files": [
    {
      "path": "registry/demo/primitives/texts/splitting/index.tsx",
      "content": "import {\n  SplittingText,\n  type SplittingTextProps,\n} from '@/components/odyssey/primitives/texts/splitting';\nimport { cn } from '@/lib/utils';\n\nconst ANIMATIONS: Record<\n  string,\n  {\n    initial: SplittingTextProps['initial'];\n    animate: SplittingTextProps['animate'];\n    transition: SplittingTextProps['transition'];\n  } | null\n> = {\n  default: null,\n  vibe: {\n    initial: { y: 50, scale: 0.5, opacity: 0, x: 50, rotate: 90 },\n    animate: { y: 0, scale: 1, opacity: 1, x: 0, rotate: 0 },\n    transition: { duration: 0.5, ease: 'easeOut' },\n  },\n  writing: {\n    initial: { y: 10, opacity: 0 },\n    animate: { y: 0, opacity: 1 },\n    transition: { type: 'spring', bounce: 0, duration: 2 },\n  },\n};\n\ninterface SplittingTextDemoProps {\n  type: SplittingTextProps['type'];\n  delay: number;\n  animation: keyof typeof ANIMATIONS;\n}\n\nexport const SplittingTextDemo = ({\n  type,\n  delay,\n  animation,\n}: SplittingTextDemoProps) => {\n  return (\n    // @ts-expect-error\n    <SplittingText\n      key={`${type}-${delay}-${animation}`}\n      className={cn('text-4xl font-semibold', type === 'lines' && 'text-xl')}\n      type={type}\n      delay={delay}\n      initial={ANIMATIONS[animation]?.initial}\n      animate={ANIMATIONS[animation]?.animate}\n      transition={ANIMATIONS[animation]?.transition}\n      text={\n        type === 'lines'\n          ? [\n              'Introducing Splitting Text component',\n              'Made with Motion. Highly customizable and easy to use.',\n            ]\n          : 'Splitting Text'\n      }\n    />\n  );\n};\n",
      "type": "registry:ui",
      "target": "components/odysseyui/demo/primitives/texts/splitting.tsx"
    }
  ],
  "meta": {
    "demoProps": {
      "SplittingText": {
        "type": {
          "value": "chars",
          "options": {
            "chars": "chars",
            "words": "words",
            "lines": "lines"
          }
        },
        "delay": {
          "value": 0,
          "min": 0,
          "max": 3000,
          "step": 100
        },
        "animation": {
          "value": "default",
          "options": {
            "default": "default",
            "vibe": "vibe",
            "writing": "writing"
          }
        }
      }
    }
  },
  "type": "registry:ui"
}