{
  "name": "shuip",
  "homepage": "https://shuip.plvo.dev",
  "items": [
    {
      "name": "calendar",
      "type": "registry:block",
      "files": [
        {
          "path": "./items/blocks/calendar/component.tsx",
          "type": "registry:block",
          "target": "./components/block/shuip/calendar.tsx"
        }
      ],
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/utilities",
        "date-fns",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "button",
        "select"
      ]
    },
    {
      "name": "confirmation-dialog",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/confirmation-dialog/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/confirmation-dialog.tsx"
        }
      ],
      "dependencies": [
        "react"
      ],
      "registryDependencies": [
        "button",
        "dialog"
      ]
    },
    {
      "name": "copy-button",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/copy-button/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/copy-button.tsx"
        }
      ],
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "button"
      ]
    },
    {
      "name": "data-table",
      "type": "registry:block",
      "files": [
        {
          "path": "./items/blocks/data-table/component.tsx",
          "type": "registry:block",
          "target": "./components/block/shuip/data-table.tsx"
        }
      ],
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "@tanstack/react-table",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "button",
        "checkbox",
        "command",
        "dialog",
        "input",
        "popover",
        "select",
        "separator",
        "table"
      ]
    },
    {
      "name": "hover-reveal",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/hover-reveal/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/hover-reveal.tsx"
        }
      ],
      "dependencies": [
        "react"
      ],
      "registryDependencies": [
        "hover-card"
      ]
    },
    {
      "name": "kanban",
      "type": "registry:block",
      "files": [
        {
          "path": "./items/blocks/kanban/component.tsx",
          "type": "registry:block",
          "target": "./components/block/shuip/kanban.tsx"
        }
      ],
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "button",
        "card",
        "input"
      ]
    },
    {
      "name": "responsive-dialog",
      "type": "registry:block",
      "files": [
        {
          "path": "./items/blocks/responsive-dialog/component.tsx",
          "type": "registry:block",
          "target": "./components/block/shuip/responsive-dialog.tsx"
        }
      ],
      "dependencies": [
        "react"
      ],
      "registryDependencies": [
        "drawer",
        "side-dialog"
      ]
    },
    {
      "name": "rhf-address-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/address-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/address-field.tsx"
        },
        {
          "path": "./items/react-hook-form/address-field/extras/places.action.ts",
          "type": "registry:file",
          "target": "./actions/shuip/places.ts"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form",
        "zod"
      ],
      "registryDependencies": [
        "command",
        "field",
        "input",
        "popover"
      ]
    },
    {
      "name": "rhf-autocomplete-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/autocomplete-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/autocomplete-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "command",
        "field",
        "input",
        "popover"
      ]
    },
    {
      "name": "rhf-checkbox-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/checkbox-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/checkbox-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "checkbox",
        "field"
      ]
    },
    {
      "name": "rhf-combobox-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/combobox-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/combobox-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "cmdk",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "badge",
        "command",
        "field"
      ]
    },
    {
      "name": "rhf-date-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/date-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/date-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker",
        "react-hook-form"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover"
      ]
    },
    {
      "name": "rhf-date-range-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/date-range-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/date-range-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker",
        "react-hook-form"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover"
      ]
    },
    {
      "name": "rhf-datetime-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/datetime-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/datetime-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "date-fns",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "input-group",
        "popover"
      ]
    },
    {
      "name": "rhf-inline-edit",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/inline-edit/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/inline-edit.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "input",
        "popover",
        "textarea"
      ]
    },
    {
      "name": "rhf-input-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/input-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/input-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip"
      ]
    },
    {
      "name": "rhf-month-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/month-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/month-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker",
        "react-hook-form"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover"
      ]
    },
    {
      "name": "rhf-number-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/number-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/number-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip"
      ]
    },
    {
      "name": "rhf-password-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/password-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/password-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip"
      ]
    },
    {
      "name": "rhf-radio-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/radio-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/radio-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "label",
        "radio-group"
      ]
    },
    {
      "name": "rhf-select-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/select-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/select-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "@radix-ui/react-select",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "select"
      ]
    },
    {
      "name": "rhf-textarea-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/textarea-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/textarea-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "lucide-react",
        "react",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip"
      ]
    },
    {
      "name": "rhf-time-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/time-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/time-field.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "select",
        "time"
      ]
    },
    {
      "name": "rhf-time-range",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/react-hook-form/time-range/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/react-hook-form/time-range.tsx"
        }
      ],
      "dependencies": [
        "@hookform/lenses",
        "react-hook-form"
      ],
      "registryDependencies": [
        "field",
        "select",
        "time"
      ]
    },
    {
      "name": "search-input",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/search-input/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/search-input.tsx"
        }
      ],
      "dependencies": [
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "input",
        "popover"
      ]
    },
    {
      "name": "shuip-components",
      "type": "registry:item",
      "files": [
        {
          "path": "./skills/.generated/shuip-components/SKILL.md",
          "type": "registry:file",
          "target": ".claude/skills/shuip-components/SKILL.md"
        }
      ]
    },
    {
      "name": "shuip-forms",
      "type": "registry:item",
      "files": [
        {
          "path": "./skills/.generated/shuip-forms/SKILL.md",
          "type": "registry:file",
          "target": ".claude/skills/shuip-forms/SKILL.md"
        }
      ]
    },
    {
      "name": "shuip-overview",
      "type": "registry:item",
      "files": [
        {
          "path": "./skills/.generated/shuip-overview/SKILL.md",
          "type": "registry:file",
          "target": ".claude/skills/shuip-overview/SKILL.md"
        }
      ]
    },
    {
      "name": "shuip-skills",
      "type": "registry:item",
      "registryDependencies": [
        "https://shuip.plvo.dev/r/shuip-components",
        "https://shuip.plvo.dev/r/shuip-forms",
        "https://shuip.plvo.dev/r/shuip-overview"
      ]
    },
    {
      "name": "side-dialog",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/side-dialog/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/side-dialog.tsx"
        }
      ],
      "dependencies": [
        "lucide-react",
        "react",
        "react-dom"
      ]
    },
    {
      "name": "submit-button",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/submit-button/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/submit-button.tsx"
        }
      ],
      "dependencies": [
        "@radix-ui/react-icons",
        "class-variance-authority",
        "react"
      ],
      "registryDependencies": [
        "button"
      ]
    },
    {
      "name": "theme-button",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/components/theme-button/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/theme-button.tsx"
        }
      ],
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "next-themes",
        "react"
      ],
      "registryDependencies": [
        "button"
      ]
    },
    {
      "name": "time",
      "type": "registry:lib",
      "files": [
        {
          "path": "./items/lib/time/time.ts",
          "type": "registry:lib",
          "target": "./lib/time.ts"
        }
      ]
    },
    {
      "name": "title-section",
      "type": "registry:block",
      "files": [
        {
          "path": "./items/blocks/title-section/component.tsx",
          "type": "registry:block",
          "target": "./components/block/shuip/title-section.tsx"
        }
      ],
      "dependencies": [
        "react"
      ]
    },
    {
      "name": "tsf-autocomplete-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/autocomplete-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/autocomplete-field.tsx"
        }
      ],
      "dependencies": [
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "command",
        "field",
        "input",
        "popover",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-checkbox-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/checkbox-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/checkbox-field.tsx"
        }
      ],
      "registryDependencies": [
        "checkbox",
        "field",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-combobox-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/combobox-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/combobox-field.tsx"
        }
      ],
      "dependencies": [
        "cmdk",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "badge",
        "command",
        "field",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-date-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/date-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/date-field.tsx"
        }
      ],
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-date-range-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/date-range-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/date-range-field.tsx"
        }
      ],
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-datetime-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/datetime-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/datetime-field.tsx"
        }
      ],
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "input-group",
        "popover",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-form-context",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/form-context/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/form-context.tsx"
        }
      ],
      "dependencies": [
        "@tanstack/react-form"
      ]
    },
    {
      "name": "tsf-inline-edit",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/inline-edit/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/inline-edit.tsx"
        }
      ],
      "dependencies": [
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "field",
        "input",
        "popover",
        "textarea",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-input-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/input-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/input-field.tsx"
        }
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-month-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/month-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/month-field.tsx"
        }
      ],
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "button",
        "calendar",
        "field",
        "popover",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-password-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/password-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/password-field.tsx"
        }
      ],
      "dependencies": [
        "lucide-react",
        "react"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-radio-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/radio-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/radio-field.tsx"
        }
      ],
      "registryDependencies": [
        "field",
        "label",
        "radio-group",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-select-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/select-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/select-field.tsx"
        }
      ],
      "registryDependencies": [
        "field",
        "select",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-submit-button",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/submit-button/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/submit-button.tsx"
        }
      ],
      "dependencies": [
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "button",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-textarea-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/textarea-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/textarea-field.tsx"
        }
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "field",
        "input-group",
        "tooltip",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-time-field",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/time-field/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/time-field.tsx"
        }
      ],
      "registryDependencies": [
        "field",
        "select",
        "time",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsf-time-range",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-form/time-range/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-form/time-range.tsx"
        }
      ],
      "registryDependencies": [
        "field",
        "select",
        "time",
        "tsf-form-context"
      ]
    },
    {
      "name": "tsq-query-boundary",
      "type": "registry:ui",
      "files": [
        {
          "path": "./items/tanstack-query/query-boundary/component.tsx",
          "type": "registry:ui",
          "target": "./components/ui/shuip/tanstack-query/query-boundary.tsx"
        }
      ],
      "dependencies": [
        "@tanstack/react-query",
        "lucide-react",
        "react",
        "react-error-boundary"
      ],
      "registryDependencies": [
        "button"
      ]
    }
  ]
}
